为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

紫衣仙女 2021-10-05 11:07:23
#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;
}

查看完整回答
反对 回复 2021-10-10
?
绝地无双

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



查看完整回答
反对 回复 2021-10-10
  • 2 回答
  • 0 关注
  • 375 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信