wa代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b;
getline(cin,a);
for(int i=0;i<a.size();i++){
b[i]=a[i]+a[(i+1)%a.size()];
}
cout<<b;
return 0;
}
-
您没有为
b
字符串分配任何空间。在C++中,字符串需要预先分配空间,然后才能存储字符。您需要使用b.resize()
或者b.reserve()
来分配空间,或者在循环中使用b.push_back()
来逐个添加字符。 -
您试图通过索引直接访问和修改
b
字符串中的字符,但因为b
没有预先分配空间,所以这个操作实际上是无效的
我加了一个b.push_back( )就可以了
#include<bits/stdc++.h>
using namespace std;
int main()
{
string a,b;
getline(cin,a);
for(int i=0;i<a.size();i++){
b[i]=a[i]+a[(i+1)%a.size()];
b.push_back(b[i]);
}
cout<<b;
return 0;
}