string
表示可变长度的字符序列
string类支持字符串对象的各种操作
- 各种初始化方式
- 字符串之间的复制、比较、连接
- 查询字符串长度和判断字符串是否为空
- 访问字符串中的单字符
string s1; //默认初始化,s1是一个空串
string s2(s1); //s2是s1的副本
string s2 = s1 //等价于s2(s1)
string s3("value"); //s3是字面值”value“的副本,除了字面值最后的空字符外
string s3 = "value"; //等价于s3("value"),s3是字面值“value"的副本
string s4(n, 'c') //把s4初始化为由连续n个字符c组成的串
读写string对象
方法一
输入操作符返回输入流对象,如果输入流对象处于有效状态,表示没有遇到文件结束或非法输入
string word
while(cin >> word)
cout << word <<endl;
方法二:getline()函数
- 两个参数:输入流对象和存放读入字符串的string对象
- 从指定输入流中读取内容,遇到换行符为止;将所读内容存入指定的string对象中,流中的换行符被读取并丢弃
- 返回参数输入流对象
string line;
while(getline(cin, line)
cout << line <<endl;
empty()函数:判断string对象是否为空,返回一个布尔值(空 return true,非空 return false)
size()函数:返回string对象的长度(字符的个数)
可以用关系运算符比较两个字符串对象
- 两个string相等意味着它们的长度相同,并且所包含的字符也完全相同
- 字符串的大小关系依照字典顺序定义且区分大小写字母
string对象的赋值和连接
允许把一个string对象的值赋给另一个string对象
也可以为string对象赋一个字符串字面值常量
两个字符串可以直接用运算符“+”连接,结果得到一个新的string对象
"+"运算符要求至少有一个运算对象是string
复合赋值运算符“+=”则将右操作数的内容追加到左操作数的后面
字符串字面值不是string类型,而是const char类型
string对象和C风格字符串的转换
可以将C风格的字符串直接赋给string对象,反之不可
用string对象的c_str()操作可以返回一个表示该string对象内容的C风格字符串,结果为const char类型,即C风格字符串的首地址
使用下标运算符可以获取string对象中指定位置的字符
可以使用for循环或range for逐个处理string对象中的字符
头文件中定义了一组获取或改变字符特性的标准库函数