1、string 类的构造函数
string(const char *s)
:将string
对象初始化为s
指向的字符串string str("Hello!");
string()
:创建一个默认的string
对象,长度为0
(默认构造函数)
注意:string str; // 创建一个空的 string 对象
string
类的设计允许程序自动处理string
的大小,上述代码创建了一个长度为0
的string
对象,向str
中写入数据时,程序会自动调整str
的长度。- 用 C 语言风格初始化
string
对象:string str = "hello!";
2、获取 string 对象的长度
在 C++ 中,可以使用 string.size()
函数(为了兼容 STL 容器而引入)或 string.length()
函数(C 语言习惯保留)来获得 string
对象的长度。
3、string 对象的拼接和附加
- 使用
+
操作符拼接两个字符串string str1("hello "); string str2("world!"); string str3 = str1 + str2;
- 使用
+=
操作符拼接两个字符串
可以使用+=
来在一个string
对象后面附加一个string
对象、字符以及 C 风格的字符串。string str1("hello "); string str2("world!\n"); str1 += str2; str1 += "nice job\n"; str1 += 'a';
- 使用 string.append() 函数
可以使用string.append()
函数来在一个string
对象后面附加一个string
对象或 C 风格的字符串。string str1 = "hello,world!"; string str2 = "HELLO,WORLD!"; str1.append(str2); str1.append("C string");
- 使用 string.push_back() 函数
可以使用string.push_back()
函数来在一个string
对象后面附加一个字符。string str("Hello"); str.push_back('a');
4、访问 string 字符串的元素
可以像 C 语言中一样,将 string 对象当做一个数组,然后使用数组下标的方式来访问字符串中的元素
string str("Hello,World!");
cout << str[1] << endl;
5、获取子串
使用substr()
函数,要求从指定位置开始,并具有指定的长度。【常用】
string str = "0123456789";
cout << str.substr(1,3) << endl; //从下标1开始,截取长度为3的子串,结果为:"123"
cout << str.substr(5) << endl; //从下标5开始,截取剩下的所有字符,结果为:"56789"
6、其他操作
-
翻转字符串【常用】
reverse
函数用于反转在[first,last)
范围内的顺序(包括first
指向的元素,不包括last
指向的元素);string str="abcd"; reverse(str.begin(),str.end());//str结果为dcba
-
重新定义字符串长度
resize
函数用于改变字符串长度。【常用】string s = "abcd"; s.resize(s.size()*2);//将字符串长度扩充至原来的2倍 //将字符串长度扩充至原来的2倍,扩充的部分使用字符'0'填充,字符串s为"abcd0000" s.resize(s.size()*2,'0');
-
删除元素
erase(pos,n)
; 删除从pos
开始的n
个字符,比如erase(0,1)
就是删除第一个字符erase(position)
;删除position
处的一个字符(position
是个string
类型的迭代器)erase(first,last)
;删除从first
到last
之间的字符(first
和last
都是迭代器)
string str ("This is an example phrase."); string::iterator it; // 第(1)种用法 str.erase (10,8); cout << str << endl; // "This is an phrase." // 第(2)种用法 it=str.begin()+9; str.erase (it); cout << str << endl; // "This is a phrase." // 第(3)种用法 str.erase (str.begin()+5, str.end()-7); cout << str << endl; // "This phrase."
-
C++ 字符串转换为数字
stoi()
【常用】
将字符串转换为整型。stoll()
将字符串转换为long longstof()
将字符串转换为float型stod()
将字符串转换为double型