如何使用指针来判断一个字符串是不是回文字符串?
1个回答
展开全部
#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;
}
#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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询