我正在编写一个程序,其中包含一个测试单词以查看它是否为回文的函数。无论输入什么词,编译器都不会抱怨和程序朗姆酒。谁能告诉我为什么会这样?我甚至从我使用的书中复制了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;
}
答案 0 :(得分:1)
问题是你有两个字符串变量,“word”和“str”。您的输入存储在“str”中,但您使用“word”
调用isPalindrome