首先,变量未在函数的开头定义,导致在某些系统如Linux中可能出现segmentaion fault错误。其次,strcat函数容易引发缓冲区溢出,引发异常。为避免此类问题,现代库及操作系统提供保护机制,限制串接字符串的长度,如Visual Studio新版本强制使用strcat_s函数。根据观察,300长度的字符串理论上足够使用,但系统可能...
在while (*t != '\0') 前加一句char *q=s;。把return *s; 改为return s; 。把函数头改为char *mystrcat(...。其实可以简单点:char *mystrcat(char *a,char *b){char *q=a;while(*a)a++;while(*a++=*b++);return q;}就可以了……...