用指针知识判断字符串输入是否"回文"
时间: 2023-06-27 07:06:07 浏览: 126
一个字符串是回文字符串,当且仅当它正着读和倒着读都一样。可以使用指针来判断一个字符串是否是回文字符串。
具体实现方法是:用两个指针分别指向字符串的首尾两端,然后逐步向中间移动指针,比较指针指向的字符是否相同,如果不同则不是回文字符串,否则继续移动指针。当指针相遇时,表示该字符串是回文字符串。
以下是示例代码:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str) {
int len = strlen(str);
char *p = str, *q = str + len - 1; // 定义指针p和q分别指向字符串首尾
while (p < q) { // p < q时循环
if (*p != *q) { // 比较指针指向的字符是否相同
return 0; // 不是回文字符串,返回0
}
p++; // 移动指针p
q--; // 移动指针q
}
return 1; // 是回文字符串,返回1
}
int main() {
char str[100];
printf("请输入字符串:");
scanf("%s", str);
if (isPalindrome(str)) {
printf("%s 是回文字符串\n", str);
} else {
printf("%s 不是回文字符串\n", str);
}
return 0;
}
```
注意,上述代码中的字符串输入不应该包含空格,如果需要支持包含空格的字符串输入,可以使用 `fgets()` 函数读取带空格的字符串。