两个程序均想实现字符连接功能,第一个函数输出为:fdsaqwerfdsa,第二个输出正确,结果是qwerfdsa
请问,程序1错在何处?
程序1
char stringcat(char *str1,char *str2)
{
int c=strlen(str1);
for(;*(str1+c)=*str2,*str2!='\0';str1++,str2++)
;
printf("%s",str1);
}
{char *s1,temp[50]="qwer";
char *s2="fdsa";
s1=temp;
printf("%s",s1);puts("\n");
printf("%s",s2);puts("\n");
s1=temp;
stringcat(s1,s2);
printf("%s",s1);
puts("\n");
getch();
}
程序2
{
while(*str1!='\0')
str1++;
for(;*str1=*str2;str1++,str2++);
return *str1;
}
void main()
{char *s1,temp[50]="qwer";
char *s2="fdsa";
s1=temp;
printf("%s",s1);puts("\n");
printf("%s",s2);puts("\n");
s1=temp;
stringcat(s1,s2);
printf("%s",s1);
puts("\n");
getch();
}