C语言用fgets函数编写程序判断字符串是否为回文
时间: 2024-11-18 16:17:02 浏览: 21
在C语言中,`fgets()` 函数通常用于从文件中读取一行文本到缓冲区,但是我们可以利用它来检查一个字符串是否为回文。回文是指正向读和反向读都一样的字符串,如 "level" 或 "madam"。
下面是一个简单的示例程序,使用 `fgets()` 和一些基本的字符处理功能来检查输入的字符串是否为回文:
```c
#include <stdio.h>
#include <string.h>
// 检查字符串是否为回文
int isPalindrome(char str[]) {
int len = strlen(str) - 1; // 获取字符串长度并减一(因为数组索引从0开始)
for (int i = 0; i <= len / 2; i++) { // 遍历一半的字符
if (str[i] != str[len - i]) { // 如果对应位置的字符不相等
return 0; // 不是回文,返回0
}
}
return 1; // 所有字符匹配,是回文,返回1
}
int main() {
char input[100]; // 定义足够大的数组存储字符串
printf("请输入一个字符串: ");
fgets(input, sizeof(input), stdin); // 从标准输入读取字符串
// 移除fgets读取后的换行符
size_t n = strlen(input);
if (input[n - 1] == '\n') {
input[n - 1] = '\0'; // 将最后一个字符设为'\0'
} else {
n--;
}
if (isPalindrome(input)) {
printf("%s 是回文\n", input);
} else {
printf("%s 不是回文\n", input);
}
return 0;
}
```
阅读全文