一、字符串初始化和赋值方法
在使用C++的string类时,我们需要初始化或赋值给string对象某个字符串。下面总结了几种方法:
1、使用双引号创建,如:string str("Hello World!")
2、使用等号赋值,如:string str = "Hello World!"
3、使用成员函数assign(),如:str.assign("Hello World!")
4、使用拷贝构造函数,如:string str_another(str)
除了以上四种方式外,还可以使用将其他数据类型转换为string对象的to_string()函数。
string str_num = to_string(1234); //将整型1234转换为字符串"1234"
二、字符串截取方法
在处理字符串时,常常需要截取其中一部分进行操作或者显示。下面介绍几个常用的方法:
1、下标运算符([])
我们可以像数组一样,使用下标运算符来访问字符串中的某个字符。
string str = "Hello World!"; char c = str[1]; //将字符'e'赋值给c
2、函数substr()
函数substr()可以截取字符串的一部分,具体使用方法如下:
string str = "Hello World!"; string sub_str = str.substr(6, 5); //从下标为6的字符开始,截取5个字符
substr()函数的第一个参数指定了开始截取的下标,第二个参数指定了要截取的字符数。如果只指定一个参数,则从指定下标开始截取到字符串末尾。
三、字符串连接方法
在C++中,可以使用加号运算符(+)进行两个字符串的连接,如:
string str1 = "Hello"; string str2 = "World!"; string str = str1 + " " + str2; //字符串连接得到"Hello World!"
此外,还可以使用成员函数append()进行字符串的连接,其使用方法如下:
string str1 = "Hello"; string str2 = "World!"; str1.append(str2); //将"World!"连接到"Hello"之后,str1变为"HelloWorld!"
四、其他常用函数
除了上述的初始化、截取和连接方法外,C++中还提供了一些常用的函数,如下所示:
1、函数length()和size()
这两个函数都可以返回字符串的长度,用法相同:
string str = "Hello World!"; int len = str.length(); //len的值为12 int size = str.size(); //size的值为12
2、函数empty()
函数empty()可以判断字符串是否为空,返回值为bool类型。
string str1 = "Hello World!"; string str2; if(str1.empty()) { //字符串为空,不执行操作 } if(str2.empty()) { //字符串为空,执行操作 }
3、函数find()
函数find()可以在字符串中查找指定的子字符串,并返回其第一次出现的位置。具体使用方法如下:
string str = "Hello World!"; int pos = str.find("World"); //pos的值为6
4、函数replace()
函数replace()可以替换字符串中指定位置的字符或子字符串,具体使用方法如下:
string str = "Hello World!"; str.replace(6, 5, "China"); //将字符串"World"替换为"China",str的值变为"Hello China!"
五、代码示例
#include <iostream> #include <string> using namespace std; int main() { //字符串初始化和赋值方法 string str1("Hello World!"); string str2 = "Hello China!"; string str3; str3.assign("Hello Japan!"); string str4(str1); //字符串截取方法 char c = str1[1]; //将字符'e'赋值给c string sub_str = str2.substr(6, 5); //从下标为6的字符开始,截取5个字符 //字符串连接方法 string str5 = str1 + " " + str2; str4.append("-").append("2020"); //其他常用函数 int len = str1.length(); //len的值为12 bool is_empty = str3.empty(); //is_empty的值为false int pos = str1.find("World"); //pos的值为6 str1.replace(6, 5, "China"); //将字符串"World"替换为"China",str的值变为"Hello China!" cout << str1 << endl; cout << str2 << endl; cout << str3 << endl; cout << str4 << endl; cout << str5 << endl; cout << sub_str << endl; return 0; }