如何使用指针来判断一个字符串是不是回文字符串?

如题所述

#include <stdio.h>
#include <string.h>
#define N 100
int fun(char *p) //传入字符串的首地址
{
char *q;
q = p; //使p和q同时指向字符串的首地址
while(*q) //使q指向字符串的结束标志''
q++;
q--; //使q指向字符串的最后一个字符,而不是结束标志
while(p<q)
{
if(*p!=*q) //判断首尾字符是否相等,如果不相等则说明不是回文串
return 0;
p++;//p和q同时向字符串的中间移动
q--;
}
return 1;
}
int main(void)
{
char ch[N];
printf("请输入一个字符串:");
gets(ch); //使用gets可以接受带空格的字符串
if(fun(ch))
printf("是回文串\n");
else
printf("不是回文串\n");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
相似回答