C++STL-String
一.String用法
1.用于字符串定义,形如:
//C语言里面的字符串定义char a[100] = "你好呀";cout << a << endl;//String用法string b = "你好呀";cout << b << endl;
2.String对象的创建
1. 无参构造 | string s1; cout << s1 << endl; |
2. 初始化列表 | string s2({ 'h', 'e', 'l','l', 'o' }); cout << s2 << endl; |
3. 字符串初始化 | string s3("你好呀"); cout << s3 << endl; |
4. 字符串的前n个字符 | string s4("你好呀", 6); cout << s4 << endl;//显示6个字符数据 |
5. 拷贝构造 | string s5(s4); cout << s5 << endl; |
6. a 个 字符 b | string s6(8, 'o'); cout << s6 << endl; |
3.String赋值操作
1. 字符串常量的赋值 | string s1; s1 = "你好呀"; s1 = 'x'; |
2.字符串变量的赋值 | string s2; s2 = s1; |
3. assign v1 | string s4; s4.assign("你好呀"); |
4. assign v2 | string s5; s5.assign("你好呀", 4); |
5. assign v3 | string s6; s6.assign(s5); |
6. a个b | string s7; s7.assign(8, '6'); |
4.String拼接操作
1. + | string s1 = "你"; string t1 = "好"; s1 = s1 + "呀"; // const char* s1 = s1 + t1; // const string& s1 = s1 + ';'; // char |
2. += | string s2 = "你"; string t2 = "好"; s2 += "呀"; // const char* s2 += t2; // const string& s2 += ';'; // char |
3. append | string s3 = "你"; string t3 = "好"; s3.append("呀"); s3.append(t3); s3.append("5201314", 3); // 3 代表取前三个数 s3.append("5201314", 3, 4); // 3 代表从第3个开始,4代表取4个元素 |
4. push_back | string s4 = "你好呀"; s4.push_back('6'); |
5.String比较操作
1. compare,这个函数会返回三个值-1,0,1;当左边>右边时,返回1;当左边=右边时,返回0;当左边<右边时,返回-1; | string s1 = "aab"; string t11 = "aab"; string t12 = "aaa"; string t13 = "aac"; string t14 = "aaba"; string t15 = "aa"; |
2. < > == <= >= ,而这个符号只会返回0,1 | cout << s1 << " == " << t11 << " -> " << (s1 == t11) << endl;////因为相等,所以返回值为1
|
6.String随机访问
1.[ ]直接访问 | string s = "I love you 1314"; s[1] |
2.at()函数访问 | s.at(1) |
3.值的修改 | s[12] = '2'; s.at(13) = '0'; |
7.String数据插入
string s1 = "Heworld";s1.insert(2, 2, 'l');//在第2个元素位置,插入2个ls1.insert(4, "o ");//在第4个元素位置插入os1.insert(s1.size(), "哈哈");//在最后面插入“哈哈”s1.insert(s1.begin(), ':');//最前面插入“:”,迭代器只能插入一个字符
8.String数据删除
s1.erase(); | 全部删除 |
s1.erase(7); | 从第7个位置开始,全部删除 |
s1.erase(7, 3); | 从第7个位置开始删除3个 |
s1.erase(s1.begin()); | 删除第一个元素,迭代只能删1个 |
s1.erase(s1.begin()+7, s1.begin()+10); | 删除第7-10个元素 |
9.String数据查找
s1 = "Hello woooorld"; s1.find("oooo") | 返回值是位置 |
s1.find("oooo", 5) | 从第5个位置开始找“oooo” |
s1.rfind("oo") | 从右往左找 |
10.String数据替换
s = "Hello woooorld"; s.replace(7, 5, "or"); | 从第7个位置开始,后面5个元素变成“or” |
s.replace(s.begin() + 7, s.begin() + 12, "or"); | 从第7个位置开始,到第12位置,也就是后面5个元素变成“or” |
s.replace(s.begin() + 7, s.begin() + 12, "oranddjkfgjdfigjkdfgdfj", 2); | 从第7个位置开始,到第12位置,也就是后面5个元素变成从"oranddjkfgjdfigjkdfgdfj"里选前两个变成“or” |
11.String获取数据
string s3 = s2.substr(0, 4); | 从第0个位置开始,获取4个元素 |
string s4 = s2.substr(2); | 从第2个位置开始,获取后面所有元素 |