定义和初始化
头文件
#include<string>
string初始化方式:
string对象上的操作
常用操作如下表:
string在程序中的使用
读写string对象:输入string对象主要有两种方式,第一种是平常的用输入操作符“>>"读入字符串。在输入操作符返回输入流对象时,如果输入流对象处于有效状态,表示没有遇到文件结束或者非法输入,可以用循环来读取未知量的string对象。
string s;
cin>>s;
string a;
while(cin>>a)
cout<<a;
第二种是使用getline()函数。getline函数可以在读取字符串中保留输入时的空白符。函数从指定的输入流中读取内容,直到遇到换行符为止;如果开始就是换行符,那么就会得到一个空的string。
string s;
while(getline(cin,s) //getline的两个参数,输入流对象和存放读入字符串的string对象
cout<<s<<endl;
判断string是否为空
使用的函数是empty(),返回一个布尔值。
获取string的长度
使用size(),返回字符串的长度,即string对象中字符的个数。
比较string对象
对string对象的字符进行比较:
如果两个string对象的长度相同,则两者相等;
如果两个string对象的长度不同,则比较较短string对象的每个字符与较长string对象相应位置的字符(按字典序),如果都相同,则较短string对象小于较长string对象;如果相应位置字符不同,则返回的是两个string对象第一对象义字符比较的结果。
string line;
while(getline(cin,line)
if(!line.empty())
cout<<line;
string::size-type s=line.size(); //判断返回值类型三种方法
auto s1=line.size();
decltype(line.size()) s2=0;
string s1="hello";
string s2="hello,world";
string s3="Hello" //s2>s1>s3
string对象的赋值和连接
允许把一个string对象的值赋给另一个string对象
string s1="hello",s2;
s2=s1;
两个字符串的连接可以直接使用运算符“+”,结果得到一个新的 string对象。复合赋值运算符“+=”则将右操作数的内容追加到左操作数的后面。
string s1="hello",s2="world",s3;
s3=s1+s2;
s1+=s2;
string s4=s1+"world"+"\n"; //正确,第一个+的结果是string
string s5="hello"+s2; //错误,不能把字面值后加string对象
处理string对象中的字符
运用标准库函数<cctype>
标准库函数见下表