小编Big*_*lla的帖子

使用 c+=expression 和 c=c+expression 时输出的 std::string 差异

在下面的代码中

#include<iostream>
#include<string>
using namespace std;
int main()
{
string a,c="!";
cin>>a;
int l=a.size();
for(int i=0;i<l;i++)
{   
    c=c+"#"+a[i];                                   
}
cout<<c;
}
Run Code Online (Sandbox Code Playgroud)

如果我替换c=c+"#"+a[i]c+="#"+a[i]我会得到意外的输出。第二种情况下的输出是 !boxboxboxbox 与https://www.onlinegdb.com/上的输入无关。在“dev c++”上,输出是 -

在此处输入图片说明

但是 a += b 等价于 a = a + b 。那么造成输出差异的原因是什么呢?

c++ string stdstring c++11

19
推荐指数
3
解决办法
1044
查看次数

标签 统计

c++ ×1

c++11 ×1

stdstring ×1

string ×1