循环C ++时无限

时间:2012-12-06 02:03:08

标签: c++ while-loop infinite-loop

我正在尝试为回文实现一个解决方案,我认为我的逻辑是正确的,但我的程序陷入无限循环,我收到“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循环错误。我继续递减它并且我有一个有效的退出条件,那么它为什么会陷入循环?

2 个答案:

答案 0 :(得分:6)

你没有得到无限循环;由于reverse[i++]行中的Out Of Bounds访问权限而导致崩溃,因为reverse是一个空字符串。请尝试使用reverse.push_back()功能。

答案 1 :(得分:0)

你是否将变量初始化为反向 只需检查并在初始化后尝试。

希望有效