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;
}
#include
#include
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++;*s='\0';//*s = '\n';
return s;
把问者和答者yiwuzh(推荐于2016-06-12)的答案结合了起来,后又删了个return 0;就对了。(在Visual C++ 6.0环境下)要是侵犯了问主和答主的知识权益,还请联系我,我会删掉的。(我只是在做题的时候,捣弄了一下,答案就出来了。希望能帮到和我一样不会题的人。)
#include
#include
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;
}