用c语言编写程序判断输入字符串是否为“回文”。所谓“回文”,是指顺读和倒读都是一样的字符串
时间: 2024-05-03 21:18:59 浏览: 14
可以使用两个指针分别指向字符串的首尾字符,然后依次向中间靠拢比较字符是否相同。具体实现如下:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char* str) {
int len = strlen(str);
char* p = str;
char* q = str + len - 1;
while (p < q) {
if (*p != *q) {
return 0;
}
p++;
q--;
}
return 1;
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("是回文字符串\n");
} else {
printf("不是回文字符串\n");
}
return 0;
}
```
这段代码首先使用 `strlen()` 函数获取字符串长度,然后使用两个指针 `p` 和 `q` 分别指向字符串的首尾字符。在循环中,如果两个字符不相等,则说明不是回文字符串,直接返回 0;否则,将指针向中间靠拢继续比较,直到 `p` 大于等于 `q`,此时说明是回文字符串,返回 1。最后在 `main()` 函数中读入字符串,调用 `isPalindrome()` 函数判断是否为回文字符串,根据返回值输出相应的结果。