【C++】string类型和char类型相加

《C++ Primer》第81页讲了相关内容:

【C++】string类型和char类型相加_第1张图片

 例子:

string s1("aaa"), s2("bbb");
s1 += s2 + ',' + "d";
cout << s1;  // 输出aaabbb,d  --> 正确

因为 s2 + ',' 的结果是一个string对象,这个对象再和 "d"相加。


string s1("aaa"), s2("bbb");
s1 += ',' + s2 + "d";
cout << s1;  // 输出aaa,bbbd  --> 正确

同样的,',' + s2 的结果一个string对象,这个对象再和 "d"相加。 


string s1("aaa"), s2("bbb");
s1 += ',' + "d" + s2;
cout << s1;  // 输出aaabbb  --> 错误

上面是错误的,原因暂时不知道,可能是 += 运算符的问题?

解决办法:

string s1("aaa"), s2("bbb");
s1 = s1 + ',' + "d" + s2; // 不用 += 
cout << s1;

string s1 = "aaa" + "bbb"; // 无法通过编译
cout << s1;

解决办法:

string s1("aaa");
string s2("bbb");
string s3 = s1 + s2;
cout << s3;

你可能感兴趣的:(C++,c++,开发语言)