字符串相连,出现内存不可读 疑惑求解
下面程序是将两个输入的字符串相连后输出,用vc6编译正确后运行,输入两个字符串之后按回车出现错误,提示内存不可读,请问是什么原因?#include <stdio.h>
void xzstrcat(char *s1,char *s2)
{
char *p,*q,ch;
p=s1,p=s2;
while((ch=*p)!='\0')
p++;
while((ch=*q)!='\0')
{ *p=*q;
p++;
q++;
}
*p='\0';
}
void main()
{
char s1[20],s2[20];
printf("please enter the first string:\n");
scanf("%s",s1);
printf("please enter the second string:\n");
scanf("%s",s2);
xzstrcat(s1,s2);
printf("\n%s",s1);
}