C语言指针,判断是否是回文
C语言指针,判断是否是回文#include<stdio.h>#include<string.h>intmain(void)//判断字符串是否是回文{inti=0,flag...
C语言指针,判断是否是回文#include <stdio.h>
#include <string.h>
int main(void)
//判断字符串是否是回文
{
int i=0,flag;
char str[80];
int yes(int *p);
printf("请输入字符串:");
while((str[i]=getchar())!='\n')i++;
str[i]='\0';
flag=yes(str);
if(flag)printf("%s是回文\n",str);
}
int yes(int *p)
{
int i,j,flag=1;//假设是回文
for(i=0,j=strlen(*p)-1;i<j;i++,j--)
{
if(*(p+i)!=*(p+j)){flag=0;break;}
}
return flag;
}
/*
asadasa
*/ 展开
#include <string.h>
int main(void)
//判断字符串是否是回文
{
int i=0,flag;
char str[80];
int yes(int *p);
printf("请输入字符串:");
while((str[i]=getchar())!='\n')i++;
str[i]='\0';
flag=yes(str);
if(flag)printf("%s是回文\n",str);
}
int yes(int *p)
{
int i,j,flag=1;//假设是回文
for(i=0,j=strlen(*p)-1;i<j;i++,j--)
{
if(*(p+i)!=*(p+j)){flag=0;break;}
}
return flag;
}
/*
asadasa
*/ 展开
1个回答
展开全部
参数应为char *p.
另外, strlen参数应为p而不是*p .
最后 虽然你这个修改后可以实现判断, 但严格来说不算是利用指针实现.
修改如下
#include <stdio.h>
int main(void)
//判断字符串是否是回文
{
int i=0,flag;
char str[80];
int yes(char *p);//
printf("请输入字符串:");
while((str[i]=getchar())!='\n')i++;
str[i]='\0';
flag=yes(str);
if(flag)printf("%s是回文\n",str);
}
int yes(char *p)
{
char *e=p;
while(*e)e++;
--e;
while(p<e && *p == *e)
{
p++;
e--;
}
if(p>=e) return 1;
return 0;
}
/*
asadasa
*/
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询