详解C++中string的用法和例子

yizhihongxing

详解C++中string的用法和例子

string简介

在C++中,string是一个非常实用的类,用于处理文本字符串。它的功能比C语言中的char数组更强大、更简单,也更安全。

头文件引入

使用string需要引入以下头文件:

#include <string>

命名空间

想要使用string类,需要用到std命名空间。可以使用如下的名称空间声明:

using namespace std;

或者在调用string对象时,显式指定std命名空间:

std::string str = "Hello World";

string的创建和初始化

使用string时,可以直接使用字符串字面量或者字符数组来初始化:

string str1 = "Hello World"; // 使用字符串字面量初始化
char chArr[] = "Hello World";
string str2(chArr); // 使用字符数组初始化

也可以使用构造函数来初始化:

string str3(10, 'a'); // 初始化一个长度为10的字符串,每个字符都是'a'

string的基本操作

获取字符串长度

使用string类的length()或者size()函数可以获取字符串的长度:

string str = "Hello";
int len = str.length(); // len的值是5

连接字符串

使用+运算符或者append()函数可以连接两个字符串:

string str1 = "Hello";
string str2 = "World";
string str3 = str1 + " " + str2; // str3的值是"Hello World"
str1.append(str2); // str1的值变成"HelloWorld"

访问字符串中的字符

可以使用[]来访问字符串中的单个字符:

string str = "Hello";
char ch = str[1]; // ch的值是'e'

也可以使用at()函数:

string str = "Hello";
char ch = str.at(1); // ch的值是'e'

查找字符串中的字符或子串

使用find()函数可以查找字符串中是否包含某个字符或者子串:

string str = "Hello";
int pos = str.find('e'); // pos的值是1
pos = str.find("ll"); // pos的值是2

注意find()返回值的类型是size_t,这是一个无符号整数类型。

截取字符串

使用substr()函数可以截取字符串的某一部分:

string str = "Hello World";
string substr1 = str.substr(6); // substr1的值是"World"
string substr2 = str.substr(0, 5); // substr2的值是"Hello"

第一个substr()函数参数表示从哪一个位置开始截取,第二个参数表示截取的长度。如果不指定第二个参数,则截取截止到字符串末尾。

示例

下面给出两个字符串的示例:

示例一:判断两个字符串是否相等

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str1 = "Hello";
    string str2 = "Hello";
    if (str1 == str2) {
        cout << "str1和str2相等" << endl;
    } else {
        cout << "str1和str2不相等" << endl;
    }
    return 0;
}

输出结果:

str1和str2相等

示例二:将字符串逆序输出

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello World";
    int n = str.length();
    for (int i = n - 1; i >= 0; i--) {
        cout << str[i];
    }
    cout << endl;
    return 0;
}

输出结果:

dlroW olleH

以上就是本文对C++中string的用法和例子的详细讲解。如有不足请指正,谢谢!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解C++中string的用法和例子 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • C# 有关Assembly.Unload详解

    C#有关Assembly.Unload详解 在C#中,Assembly.Unload方法用于释放加载的程序集,可以使得程序集在内存中占用的资源被回收。本文将详细讲解Assembly.Unload方法的使用方法及注意事项。 Assembly.Unload方法的使用方法 在C#中,Assembly.Unload方法属于AppDomain类,因此在使用此方法之前需…

    C# 2023年5月15日
    00
  • C# Path.GetFileName()方法: 获取指定路径字符串的文件名和扩展名

    C#中Path.GetFileName()的作用与使用方法 Path.GetFileName() 是C#中 System.IO 命名空间提供的方法之一,它可以返回指定路径字符串的文件名和扩展名,并移除该路径字符串中的所有其他信息。它不会返回目录名称。 使用 Path.GetFileName() 方法时,需要引用System.IO 命名空间,格式如下: usi…

    C# 2023年4月19日
    00
  • C#实现的滚动网页截图功能示例

    C#实现滚动网页截图功能攻略 1. 概述 滚动截图是一种常见的网页截图技术,它可以将整个页面的截图多次拼接在一起,形成完整的网页截图。本文将介绍通过C#编写实现滚动网页截图功能。 2. 实现思路 使用WebBrowser控件作为载体,在WebBrowser控件中载入网页,通过Javascript将网页的滚动条滚动到底部,将页面的高度计算出来。 将WebBro…

    C# 2023年6月6日
    00
  • 用 C# 编写一个停放在任务栏上的图标程序

    下面是用C#编写一个停放在任务栏上的图标程序的完整攻略: 步骤一:创建项目 打开Visual Studio 新建一个Windows 窗体应用程序项目。 在解决方案资源管理器中双击 Form1.cs 文件以打开窗体设计器。 将工具箱中的 NotifyIcon 控件拖到窗口设计器窗口中,这个控件将是我们后面实现任务栏图标功能的主角。 步骤二:实现图标控制功能 给…

    C# 2023年6月7日
    00
  • 一个ASP.NET中使用的MessageBox类

    MessageBox类是ASP.NET中常用的一种弹出对话框的类,可以用于在页面中弹出各种对用户的提示和警告,使用起来非常方便。 创建MessageBox实例 首先,需要在页面中引入System.Windows.Forms名称空间,以便使用MessageBox类。 using System.Windows.Forms; 然后,我们可以使用以下方式来创建Mes…

    C# 2023年6月3日
    00
  • Entity Framework映射TPH、TPT、TPC与继承类

    Entity Framework是一种ORM(Object Relational Mapping)框架,通过实体映射来将数据库中的表映射到代码中的类。当数据库中的表存在继承关系时,Entity Framework提供了三种继承映射策略:TPH、TPT、TPC。 TPH TPH(Table Per Hierarchy)策略将整个继承关系映射到同一张表中,该表有…

    C# 2023年6月3日
    00
  • C#使用DoddleReport快速生成报表

    下面是关于C#使用DoddleReport快速生成报表的完整攻略。 一、什么是DoddleReport? DoddleReport是一个基于C#的开源报表生成工具,在.NET平台上运行,可以轻松地生成各种类型的报表,如PDF、Excel、Word等。它可以使用任何.NET应用程序、ASP.NET网站、WinForms或WPF应用程序中编写的数据源,生成定制和…

    C# 2023年5月31日
    00
  • C#使用Enum.TryParse()实现枚举安全转换

    当我们需要将字符串或整数等类型转换为枚举类型时,可以使用C#提供的Enum.TryParse()方法来实现安全转换,避免了在转换时可能会抛出异常的情况。 什么是枚举类型 枚举类型是一种特殊的值类型(Value Type),它限定了该类型变量只能是预先定义好的枚举值中的一种。枚举类型可以在程序中用于表示特定的常量值,例如星期几、性别等。 Enum.TryPar…

    C# 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部