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

*/
展开
 我来答
风若远去何人留
2017-12-28 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450136
专业C/C++软件开发

向TA提问 私信TA
展开全部

参数应为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

*/
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式