本关任务:在题干所给程序框架的基础上,编写程序,输入一个字符串,判断是否为回文,是回文则输出"Yes",否则输出"No"。 所谓回文是指一个句子从左到右读和从右到左读是完全一样的,例如 "Able was I ere I saw elba","上海自来水来自海上"。 要求:字符串中可以包含空格以及汉字,但没有换行符(即'\n')和回车符(即'\r'),并且忽略英文字符的大小写,限定字符串长度最大为80。用c++
时间: 2023-07-07 18:07:45 浏览: 115
DAA_Assignment
```c++
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
int main() {
char str[81];
cin.getline(str, 81); // 读入字符串
int len = strlen(str);
bool isPalindrome = true;
for(int i = 0; i < len/2; i++) {
// 将英文字符转为小写,忽略大小写
char c1 = isalpha(str[i]) ? tolower(str[i]) : str[i];
char c2 = isalpha(str[len-1-i]) ? tolower(str[len-1-i]) : str[len-1-i];
if(c1 != c2) {
isPalindrome = false;
break;
}
}
if(isPalindrome) cout << "Yes";
else cout << "No";
return 0;
}
```
阅读全文