自己写的c语言strcat,用以拼接两个字符串,但是打印出来是null,不知道问题出在哪里,请高手指教

2025-03-06 11:39:05
推荐回答(3个)
回答1:

  1. 把while (*s++ != '\0');改为while (*s != '\0') s++;。

  2. 在while (*t != '\0') 前加一句char *q=s;。

  3. 把return *s; 改为return s; 。

  4. 把函数头改为char *mystrcat(...。

其实可以简单点:

char *mystrcat(char *a,char *b){
char *q=a;
while(*a)
a++;
while(*a++=*b++);
return q;
}

就可以了……

回答2:

char *strcat(char *s, char *t) {
char *p=s;
while (*s++ != '\0');
s--;
while (*s++=*t++);
return p; 
}

回答3:

代码贴全,这样看不出究竟。