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是不同的类型。

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值