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

1. 标准库类型 string

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

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

 2.读写string对象

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

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

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

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

3.string对象相加

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

 1     string st1 = "hello,",st2 = "world!";
 2     string st3 = st1+st2;
 3     cout<<"st3的字面值为"<<st3<<endl;
 4 
 5     string st4 = "hello";
 6     string st5 = st4+','+st2;
 7     cout <<"st5字面值为"<<st5<<endl;
 8 
 9     string st6 = st4+","+"world";//正确 st4是string对象,st4+","还是string对象
10     cout << "st6字面值为"<<st6<<endl;
11     //string st7 = "hello"+","+st4;//错误"hello"和","都不是string对象
12     system("pause");

原文地址:https://www.cnblogs.com/ggYYa/p/5709076.html