欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

标准库类型string

程序员文章站 2022-07-15 13:45:22
...

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对象
方法一

输入操作符返回输入流对象,如果输入流对象处于有效状态,表示没有遇到文件结束或非法输入
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对象的长度(字符的个数)
可以用关系运算符比较两个字符串对象

  1. 两个string相等意味着它们的长度相同,并且所包含的字符也完全相同
  2. 字符串的大小关系依照字典顺序定义且区分大小写字母

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对象中的字符
头文件中定义了一组获取或改变字符特性的标准库函数