string binary = "12345";
string binary2 = "";
size = binary.size() - 1;
for (i = size; i >= 0; i--)
{
binary2[size - i] = binary[i];
}
cout << binary2;
我在运行时不断收到下标错误。但是,我不知道问题是什么。如果可能的话,我将不胜感激。
答案 0 :(得分:8)
binary2
为空。它没有任何字符。使用[]
访问字符并不会奇迹般地创建尚不存在的字符:它只会更改现有字符的值。您正在尝试更改不存在的字符的值。
您可以将binary2
初始化为" "
,如下所示:
string binary = "12345";
string binary2(binary.size(), ' ');
// now your loop
或者你可以正确地进行字符串反转:
string binary = "12345";
string binary2(binary.rbegin(), binary.rend());
答案 1 :(得分:2)
首先,你的binary2字符串为空。这可以通过附加到它来修复。 然而,一点点的搜索让我得到了格雷格罗杰斯在这里找到的以下答案:https://stackoverflow.com/a/198210/2299061
#include <algorithm>
std::reverse(str.begin(), str.end());
答案 2 :(得分:0)
字符串binary2 = ""
应更改为字符串binary2 = " ";