用C语言写 回文串判断:从键盘输入一句话(不超过100个字符),并判断该句话是否为回文。
时间: 2023-11-27 17:51:37 浏览: 81
以下是用C语言实现回文串判断的示例代码:
```c
#include <stdio.h>
#include <string.h>
int main() {
char str[101];
int i, len, flag = 1;
printf("请输入一个字符串:\n");
fgets(str, 101, stdin);
len = strlen(str) - 1; // 去掉最后的换行符
for (i = 0; i < len / 2; i++) {
if (str[i] != str[len - i - 1]) {
flag = 0;
break;
}
}
if (flag) {
printf("该字符串是回文串。\n");
} else {
printf("该字符串不是回文串。\n");
}
return 0;
}
```
代码解释:
1. 首先定义一个字符数组 `str`,用于存储输入的字符串。数组长度为101,是因为最多只能输入100个字符,再加上一个字符串结束符 `\0`。
2. 使用 `fgets` 函数从标准输入(即键盘)获取输入的字符串。函数原型为 `char *fgets(char *str, int n, FILE *stream)`,其中 `str` 是一个指向字符数组的指针,用于存储输入的字符串;`n` 是读取的最大字符数(包括换行符和字符串结束符),这里设为101;`stream` 是一个指向文件流的指针,这里使用标准输入流 `stdin`。
3. 使用 `strlen` 函数获取字符串的长度。注意要减去最后的换行符。
4. 使用循环遍历字符串的前一半字符,判断其是否与后一半对应位置的字符相等。如果存在不相等的情况,将 `flag` 标志设为0,表示该字符串不是回文串。
5. 最后根据 `flag` 的值输出判断结果。
注意事项:
1. 使用 `fgets` 函数获取输入时,需要注意输入的字符串可能包含换行符,因此在计算字符串长度时要减去最后的换行符。
2. 判断回文串时,只需要遍历字符串的前一半字符即可。如果字符串长度为奇数,中间的字符可以忽略不计。
阅读全文