我只需要反转一个字符串,所以我声明了一个新的字符串变量并迭代地复制了这些元素.现在我想打印反转的字符串,cout << reversed;但这不打印任何东西.我可以通过for循环打印reverse[i]直到尺寸但是有更好的方法吗?
#include <iostream>
#include <string>
using namespace std;
int main()
{
string original = "hello";
string reverse;
int i, j = 0, size = original.length();
for (i = size - 1; i >= 0; i--) // original's last as reversed's first
{
reverse[j] = original[i];
j++;
}
reverse[j] = '\0'; //last value as null
cout << "original string = " << original << endl;
cout << "reversed string = " << reverse << endl;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
更好的解决方案是使用std::reverse:
std::string original = "whatever";
std::string rev = original;
std::reverse(rev.begin(), rev.end());
Run Code Online (Sandbox Code Playgroud)