C++ string对象相加问题

两个string对象相加:

两个string对象相加得到一个新的string对象,其内容是左侧的运算对象与右侧的运算对象串接而成。另外,复合赋值运算符(+=)负责把右侧string对象的内容追加到左侧string对象的后面:

string s1="hello,",s2="word\n";
string s3=s1+s2;  //s3的内容是hello,word\n
s1+=s2; //等价于s1=s1+s2

字面值和string对象相加:

因为标准库允许把字符字面值字符串字面值转换成string对象,所以在需要string对象的地方就可以使用者两种字面值来代替:

string s1="hello",s2="world";
string s3=s1+','+s2+'\n';

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

string s4=s1+",";           //正确,把一个string对象和一个字面值相加
string s5="hello"+",";      //错误,两个运算对象都不是string
string s6=s1+","+"world";   //正确,相当于string s6=(s1+",")+"world";每个加法运算符都有一个运算对象是string
string s7="hello"+","+s2;   //错误,第一个+将字面值直接相加

因为某些历史原因,也为了与C兼容,所以C++语言中的字符串字面值并不是标准库类型string的对象。切记,字符串字面值与string是不同的类型。

  • 5
    点赞
  • 15
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:技术黑板 设计师:CSDN官方博客 返回首页
评论

打赏作者

oil_you

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值