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********的下一行有错,帮我改一下。谢谢!!!
展开
 我来答
gj980603
2010-03-28 · TA获得超过194个赞
知道小有建树答主
回答量:187
采纳率:0%
帮助的人:163万
展开全部
1.改为char fun(char &s,char &t)
2.改为ss++
3.改为tt++
黄邦勇帅哥哥
2010-03-28 · TA获得超过3987个赞
知道大有可为答主
回答量:1199
采纳率:100%
帮助的人:479万
展开全部
第一处:
*******found*********
(*ss)++; //改为ss++

第二处:
********found********
(*tt)++; //改为tt++

原因:
把指针ss移向下一个位置,然后再求值*ss才能把指针移到字符串的末尾。(*ss)++只是在对ss[0]的值加1,没有意义。程序会成为死循环。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
m3150978
2010-03-28 · 超过17用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:47.3万
展开全部
去掉括号啊,有括号的是指针所指的内容++,所以这个循环是这个字符串的首字母按ASC码来加的,是死循环。去掉括号,才是指针的地址++,才是字符串的下一个字母。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Starfire9
2010-03-28 · TA获得超过282个赞
知道小有建树答主
回答量:330
采纳率:0%
帮助的人:0
展开全部
费那事儿干嘛,这么写不就得了么~
char* fun(char *s, char *t) {
if (strlen(s) > strlen(t))
return s;
else
return t;
}

不过有个问题,万一两个一样长怎么办?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式