C语言函数指针判断回文
时间: 2023-12-22 18:28:24 浏览: 141
C语言-判断输入字符串是否为回文串.txt
下面是使用C语言函数指针判断回文的代码示例:
```c
#include <stdio.h>
#include <string.h>
int isPalindrome(char *str, int (*cmp)(const char *, const char *));
int main() {
char str[100];
printf("请输入一个字符串:");
scanf("%s", str);
if (isPalindrome(str, strcmp)) {
printf("%s 是回文字符串\n", str);
} else {
printf("%s 不是回文字符串\n", str);
}
return 0;
}
int isPalindrome(char *str, int (*cmp)(const char *, const char *)) {
int len = strlen(str);
char *p1 = str;
char *p2 = str + len - 1;
while (p1 < p2) {
if (cmp(p1, p2) != 0) {
return 0;
}
p1++;
p2--;
}
return 1;
}
```
该程序中,isPalindrome函数接收两个参数,第一个参数是要判断的字符串,第二个参数是一个函数指针,用于比较两个字符是否相等。在主函数中,我们使用strcmp函数作为第二个参数传递给isPalindrome函数。
isPalindrome函数首先统计字符串的长度,然后定义两个指针p1和p2,分别指向字符串的首尾字符。在比较过程中,如果发现p1和p2指向的字符不相等,就返回0,表示该字符串不是回文字符串。如果一直比较到p1和p2相遇,就说明该字符串是回文字符串,返回1。
阅读全文