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