用c语言写一个程序判断一个字符是否为回文
时间: 2024-10-22 16:14:27 浏览: 15
在C语言中,编写一个函数来判断一个字符组成的字符串是否为回文(正读反读都一样),可以使用以下方法:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
int isPalindrome(char str[]);
int main() {
char input[100];
printf("请输入一个字符组成的字符串:");
fgets(input, sizeof(input), stdin);
input[strcspn(input, "\n")] = '\0'; // 移除fgets获取的换行符
if (isPalindrome(input)) {
printf("%s 是回文串\n", input);
} else {
printf("%s 不是回文串\n", input);
}
return 0;
}
// 判断字符串是否为回文
int isPalindrome(char str[]) {
int start = 0;
int end = strlen(str) - 1;
while (start < end) {
if (str[start] != str[end]) {
return 0; // 如果任意一对对应位置的字符不同,则不是回文
}
start++;
end--;
}
return 1; // 如果循环结束都没有返回,说明是回文
}
```
这个程序首先接收用户输入的字符串,然后调用 `isPalindrome` 函数来检查。函数通过两个指针,一个从前往后移动(`start`),另一个从后往前移动(`end`),比较对应的字符,如果发现不相等则立即返回0(非回文),当所有对应字符都匹配后,返回1表示是回文。
阅读全文