我想写一个程序来反转一个字符串。我使用了下面的代码,但不幸的是它没有工作。我有点困惑,为什么发生。我可以将单个字符分配给C++中的字符串吗?
这里是我的代码:
#include <string>
#include <iostream>
using namespace std;
int main()
{
string InputString = "Hello";
string OutputString;
int length;
length = InputString.length();
for (int i=length-1, j=0; i >=0, j<length; i--, j++)
OutputString[j] = InputString[i];
cout << "The reverse string of " << InputString << " is "
<< OutputString << ".\n";
return 0;
}
我的输出是: 你好的反向字符串。
OutputString [J]? – HazemGomaa
我也*强烈*推荐编写'const int length = InputString.length();'尽可能经常使用'const'习惯。它使很多错误更容易看到,编译器可以喜欢它进行优化。 –
最后,'length_t'用于'length','i'和j'是一个很好的习惯。容器倾向于使用'size_t'作为其长度和索引变量。如果您遵循相同的风格,从长远来看,它可以节省很多麻烦。 –