isPalindrome函数C ++问题

时间:2015-02-26 21:40:40

标签: c++

我正在编写一个程序,其中包含一个测试单词以查看它是否为回文的函数。无论输入什么词,编译器都不会抱怨和程序朗姆酒。谁能告诉我为什么会这样?我甚至从我使用的书中复制了isPalindrome函数。我不知道发生了什么语义问题。

#include <iostream>
#include <conio.h>
#include <string>
#include <cctype>

using namespace std;

bool isPalindrome (string str);

int main()
{
    string word;

    string str;

    cout << "Enter a word to test if it is a palindrome. \n";
    cin >> str;

    for (int i=0; word [i] != '\0'; i++)
            { word[i] = tolower (word[i]); }

    isPalindrome(word);

    if (isPalindrome(word) == 1)
        cout << "The word you entered is a palindrome." << endl;
    if (isPalindrome(word) == 0)
        cout << "The word you entered is not a palindrome." << endl;

    _getch();
    return 0;
}

bool isPalindrome(string str)
{
    int length = str.length();

    for (int i = 0; i < (length / 2); i++)
        if (str[i] != str[length - 1 - i])
            return false;

    return true;    
}

1 个答案:

答案 0 :(得分:1)

问题是你有两个字符串变量,“word”和“str”。您的输入存储在“str”中,但您使用“word”

调用isPalindrome