编写一个c++程序来确定给定单词是否回文(不分大小写)。每行输入包含一个单词,没有空格。对于每行输入,是回文则输出“yes”,否则输出“no”
时间: 2024-10-14 10:05:04 浏览: 18
在C++中,你可以通过比较单词的正向字符序列和反向字符序列来判断它是否是回文。下面是一个简单的示例程序:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
bool isPalindrome(const std::string& word) {
// 转换为小写并移除空格
std::transform(word.begin(), word.end(), word.begin(), ::tolower);
word.erase(std::remove_if(word.begin(), word.end(), isspace), word.end());
// 比较原词和反转后的词是否相等
return word == std::string(word.rbegin(), word.rend());
}
int main() {
std::string input;
while (std::cin >> input) {
if (isPalindrome(input)) {
std::cout << "yes" << std::endl;
} else {
std::cout << "no" << std::endl;
}
}
return 0;
}
```
这个程序首先将输入的单词转换为小写,并删除所有空格。然后,它检查处理过的字符串是否与其反转版本相等。如果相等,则该单词是回文,输出 "yes";如果不相等,则输出 "no"。
阅读全文