我正在尝试为回文实现一个解决方案,我认为我的逻辑是正确的,但我的程序陷入无限循环,我收到“Prep.exe已停止工作”的错误消息
int main()
{
string word, reverse;
cout << "Please enter a word to test for palindrome : ";
cin >> word;
cout << "Your word is: "<< word << endl;
int i = 0;
int size = word.length() - 1;
while (size >= 0)
{
reverse[i++] = word[size--];
//cout << reverse[i++];
}
cout << "The reversed word is: " << reverse << endl;
if (word == reverse)
cout << "It is palindrome" << endl;
else
cout << "It is not a palindrome" << endl;
}
我不确定我的while循环错误。我继续递减它并且我有一个有效的退出条件,那么它为什么会陷入循环?
答案 0 :(得分:6)
你没有得到无限循环;由于reverse[i++]
行中的Out Of Bounds访问权限而导致崩溃,因为reverse
是一个空字符串。请尝试使用reverse.push_back()
功能。
答案 1 :(得分:0)
你是否将变量初始化为反向 只需检查并在初始化后尝试。
希望有效