我想做一个程序,在不使用任何内置函数的情况下,将一个字符串分配给另一个反向字符串,但我得到了这个错误,我该如何解决它。图像
#include <iostream>
using namespace std;
int main()
{
string a, b;
cin >> a;
for (int i = 0; i < a.size(); i++)
{
b[i] = a[a.size() - 1 - i];
}
cout << b;
}
更改此
b[i] = a[a.size() - 1 - i];
对此
b += a[a.size() - 1 - i];
当您使用时,字符串(和向量)不会自动调整它们的大小。如果字符串的大小为零,则需要使用
或类似的方法向字符串中添加字符。
代码没有为字符串
完整代码:
#include <iostream>
using namespace std;
int main()
{
string a, b;
cin >> a;
b.resize(a.size())
for (int i = 0; i < a.size(); i++)
{
b[i] = a[a.size() - 1 - i];
}
cout << b;
}
用以下代码替换您的代码:
#include <iostream>
using namespace std;
int main()
{
string a="", b="";
cin >> a;
for (int i = 0; i < a.size(); i++)
{
b+= a[a.size() - 1 - i];
}
cout << b;
return 0;
}