C++编写程序,输入一个字符串,判断是否为回文,是回文则输出"Yes",否则输出"No"。 所谓回文是指一个句子从左到右读和从右到左读是完全一样的,例如 "Able was I ere I saw elba","上海自来水来自海上"。 要求:字符串中可以包含空格以及汉字,但没有换行符(即'\n')和回车符(即'\r'),并且忽略英文字符的大小写,限定字符串长度最大为80。 UTF-8字符集 提示:与课堂上讲授不同,EduCoder平台上汉字使用的是UTF-8字符集。在UTF-8字符集中,一个汉字占三个字节,并且汉字的第一个字节的取值范围是0x80~0xFF,而普通ASCII字符(包括英文字符)只有一个字节,并且取值范围是0x00~0x7F(即0~127)。
时间: 2024-02-19 19:59:28 浏览: 167
以下是 C++ 语言的实现代码:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string s;
getline(cin, s); // 获取用户输入的字符串,包含空格
// 去除非字母数字字符,并转为小写
s.erase(remove_if(s.begin(), s.end(), [](char c) { return !isalnum(c); }), s.end());
transform(s.begin(), s.end(), s.begin(), [](char c) { return tolower(c); });
// 判断是否为回文
string t = s;
reverse(t.begin(), t.end());
if (s == t) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
解释一下代码:
首先,使用 `getline()` 函数获取用户输入的字符串,包含空格。这里需要包含 `<string>` 头文件。
接下来,使用 `erase()` 函数和 `remove_if()` 算法去除字符串中的非字母数字字符,同时使用 `transform()` 函数将字符串转为小写字母形式。这里需要包含 `<algorithm>` 头文件。
然后,使用 `reverse()` 函数将字符串反转,与原字符串进行比较,判断是否为回文。如果是回文,则输出 "Yes",否则输出 "No"。
注意,C++ 中的 `string` 类型默认使用 UTF-8 编码,因此不需要对汉字进行特殊处理。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)