如何打印此手动制作的字符串

TRE*_*MOR 0 c++ string

我只需要反转一个字符串,所以我声明了一个新的字符串变量并迭代地复制了这些元素.现在我想打印反转的字符串,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)