目录
学习 string 类
使用 string 类
实例化一个无参数的 string 对象
实例化一个带参数的 string 对象
合并两个字符串(重载了加运算符)
通过重载[]访问每个字符
迭代器遍历每个字符
范围 for 遍历每个字符
学习 string 类
何为 string 类:
string 类是一个管理字符数组的对象,也就是一个管理字符的顺序表
调用 string 类所需要的头文件:
#include<string>
使用 string 类
实例化一个无参数的 string 对象
string s1;
string 类重载了流插入和流提取,所有可以手动插入数据:
实例化一个带参数的 string 对象
string s2("hello world");
同样可以直接流输出打印:
合并两个字符串(重载了加运算符)
string s1("hello ");
string s2("world");string ret = s1 + s2;
代码验证:
除了字符串和字符串拼接,字符串还可以和常量字符串拼接,或者合并拼接
代码演示:
string s1("hello");
string s2("world");string ret = s1 + " " + s2 + "!!!";
代码验证:
通过重载[]访问每个字符
代码演示:
string s1("hello world");for (int i = 0; i < s1.size(); i++)
{cout << s1[i] << " ";
}
s1.size() 可以直接获取字符个数
代码验证:
重载的 [] 不仅有读的作用,也有写的作用:
string s1("hello world");for (int i = 0; i < s1.size(); i++)
{if (s1[i] != ' '){s1[i] = '*';}
}
把字母全改为 '*' 号
代码验证:
迭代器遍历每个字符
string::iterator it = s1.begin();while (it != s1.end())
{cout << *it << " ";it++;
}
后续会将迭代器的底层逻辑一一实现出来,现在只需要知道如何使用即可
s1.begin() 是类似指向字符串首字符的指针,s1.end() 是指向字符串尾字符下一个位置,也就是 '\0' 的位置的指针,再通过 it 遍历
代码验证:
范围 for 遍历每个字符
string s1("hello world");for (auto e : s1)
{cout << e << " ";
}
cout << endl;
auto 自动识别类型,e 自动接收自动递增并结束
代码验证: