#include <stdio.h>#include <string.h>char *str_cat(char *s,char *t);void main(){char s[80],t[80];gets(s);gets(t);puts(str_cat(s,t));return 0;}char *str_cat(char *s,char *t){for(;*s != '\0'; s++);for(; *t != '\0';t++){ *s = *t;s++; }*s = '\n';return s;} 错在哪儿了。。TT 大家帮忙啊。
2 回答
慕无忌1623718
TA贡献1744条经验 获得超4个赞
str_cat(char *s,char *t)函数里,return s语句中,s已经指向字符串末尾,返回值肯定不对。
然后字符串结尾应该用'\0'。正确应该是
char *str_cat(char *s,char *t)
{
char* begin = s;
for(;*s != '\0'; s++);
for(; *t != '\0';t++){
*s = *t;
s++;
}
*s = '\0';
return begin;
}
绝地无双
TA贡献1946条经验 获得超4个赞
把问者和答者yiwuzh(推荐于2016-06-12)的答案结合了起来,后又删了个return 0;就对了。(在Visual C++ 6.0环境下)要是侵犯了问主和答主的知识权益,还请联系我,我会删掉的。(我只是在做题的时候,捣弄了一下,答案就出来了。希望能帮到和我一样不会题的人。)
#include <stdio.h>
#include <string.h>
char *str_cat(char *s,char *t);
void main()
{
char s[80],t[80];
gets(s);
gets(t);
puts(str_cat(s,t));
}
char *str_cat(char *s,char *t)
{
char* begin = s;
for(;*s != '\0'; s++);
for(; *t != '\0';t++){
*s = *t;
s++;
}
*s = '\0';
return begin;
}
添加回答
举报
0/150
提交
取消