C++ Primer 第三章 标准库类型string运算

时间:2024-01-15 20:57:50

1. 标准库类型 string

string表示可变长的字符序列,使用string必须首先包含string头文件。如何初始化类的对象是由类本身决定的。

     int n;
string s1;//默认初始化,s1是空字符串
string s2(s1);//s2是s1的副本,等价于string s2 = s1;
string s3("value");//s3是字面值"value"的副本,除了字面值后面的那个空字符外,等价于string s3 = "value";
string s4(n,'c');//把s4初始化为连续n个字符c组成的串;即s4=cccccccc(n个c);

2.读写string对象

  2.1 读取string操作,string对象会自动忽略开头的空白(即空格符、换行符、制表符等)并从第一个真正的字符开始读起,直到遇见下一处空白为止。

     string s;
cin >> s;
cout <<"输出内容"<< s << endl;
system("pause");

C++ Primer 第三章 标准库类型string运算

2.2 有时希望能在最终得到的字符串中保留输入时的空白符,则getline代替原来的>>可以实现;

     string line;
while(getline(cin,line))
cout<<"输出内容"<<line<<endl;
system("pause");

C++ Primer 第三章 标准库类型string运算

3.string对象相加

PS:两个string对象可直接相加,string和字符字面值及字符串字面值一条语句中使用时,必须确保每个加法运算符(+)的两侧运算对象至少有一个是string对象。

     string st1 = "hello,",st2 = "world!";
string st3 = st1+st2;
cout<<"st3的字面值为"<<st3<<endl; string st4 = "hello";
string st5 = st4+','+st2;
cout <<"st5字面值为"<<st5<<endl; string st6 = st4+","+"world";//正确 st4是string对象,st4+","还是string对象
cout << "st6字面值为"<<st6<<endl;
//string st7 = "hello"+","+st4;//错误"hello"和","都不是string对象
system("pause");

C++ Primer 第三章 标准库类型string运算