这个连接字符串程序错哪了

#include <stdio.h>
void mystrcat(char *s1,char *s2);
int main()
{
char a[15]={'1','2','3','4','5'},b[10]={"abcde"};
mystrcat(a,b);
return 0;
}
void mystrcat(char *s1,char *s2)
{

while(*s1)
 s1++;
while(*s2!='\0')
 *s1++=*s2++;
 
puts(s1);

}

修改如下,供参考:

#include <stdio.h>
void mystrcat(char *s1,char *s2);
int main()
{
    char a[15]={'1','2','3','4','5'},b[10]={"abcde"};
    mystrcat(a,b);
    
    return 0;
}
void mystrcat(char *s1,char *s2)
{
    char *s = s1;
    while(*s1)
          s1++;
    while(*s2)
          *s1++ = *s2++;
    s1 = '\0';
    puts(s);
}