如何使用字符指针实现函数str_cat(s,t),将字符串t复制到字符串s的末端,并且返回?

#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 大家帮忙啊。

紫衣仙女
浏览 376回答 2
2回答

慕无忌1623718

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;}

绝地无双

把问者和答者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;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java