fun函数的功能:比较两个字符串,把长的字符串的首地址返回(c语言的改错题)
*********found**********charfun(char*s,char*t){ints1=0,t1=0;char*ss,*tt;ss=s;tt=t;whi...
*********found**********
char fun(char *s,char *t)
{ int s1=0,t1=0;
char *ss,*tt;
ss=s;tt=t;
while(*ss)
s1++;
*******found*********
(*ss)++;
while(*tt)
t1++;
********found********
(*tt)++;
if(s1>t1) return s;
else return t;
}
在********found********的下一行有错,帮我改一下。谢谢!!! 展开
char fun(char *s,char *t)
{ int s1=0,t1=0;
char *ss,*tt;
ss=s;tt=t;
while(*ss)
s1++;
*******found*********
(*ss)++;
while(*tt)
t1++;
********found********
(*tt)++;
if(s1>t1) return s;
else return t;
}
在********found********的下一行有错,帮我改一下。谢谢!!! 展开
4个回答
展开全部
第一处:
*******found*********
(*ss)++; //改为ss++
第二处:
********found********
(*tt)++; //改为tt++
原因:
把指针ss移向下一个位置,然后再求值*ss才能把指针移到字符串的末尾。(*ss)++只是在对ss[0]的值加1,没有意义。程序会成为死循环。
*******found*********
(*ss)++; //改为ss++
第二处:
********found********
(*tt)++; //改为tt++
原因:
把指针ss移向下一个位置,然后再求值*ss才能把指针移到字符串的末尾。(*ss)++只是在对ss[0]的值加1,没有意义。程序会成为死循环。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
去掉括号啊,有括号的是指针所指的内容++,所以这个循环是这个字符串的首字母按ASC码来加的,是死循环。去掉括号,才是指针的地址++,才是字符串的下一个字母。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
费那事儿干嘛,这么写不就得了么~
char* fun(char *s, char *t) {
if (strlen(s) > strlen(t))
return s;
else
return t;
}
不过有个问题,万一两个一样长怎么办?
char* fun(char *s, char *t) {
if (strlen(s) > strlen(t))
return s;
else
return t;
}
不过有个问题,万一两个一样长怎么办?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询