当前位置: 代码迷 >> C语言 >> 这个函数运用错在哪了,谢谢大家?
  详细解决方案

这个函数运用错在哪了,谢谢大家?

热度:235   发布时间:2007-07-29 11:40:15.0
这个函数运用错在哪了,谢谢大家?
void strcat(char *s1,char *s2)
{while(*s1!='\0');
s1++;
for(;*s1=*s2;s1++,s2++);
}
void main()
{char *s1="rewr";
char *s2="fdsa";
strcat(s1,s2);}
搜索更多相关的解决方案: 函数  

----------------解决方案--------------------------------------------------------

你的数组声明有问题,char *s1="rewr";char *s2="fdsa";这样声明s1和s2长度都只有5
所以联接时会出问题.


----------------解决方案--------------------------------------------------------

谢谢你,应该怎样定义呢?麻烦您了,帮我一下,写一个完整的行吗?


----------------解决方案--------------------------------------------------------

while(*s1!='\0');后是没有;的拉

void strcat1(char *s1,char *s2)
{
while(*s1!='\0')
s1++;
for(;*s1=*s2;s1++,s2++);

}
void main()
{char *s1,temp[50]="qwer";
char *s2="fdsa";
s1=temp;
printf("%s",s1);puts("\n");
printf("%s",s2);puts("\n");
s1=temp;
strcat1(s1,s2);
printf("%s",s1);
puts("\n");
}

[此贴子已经被作者于2007-7-29 14:03:28编辑过]


----------------解决方案--------------------------------------------------------

void stringcat(char *str1,char *str2)
{
int c=strlen(str1);
for(;*(str1+c)=*str2;str1++,str2++);

}
void main()
{char *s1,temp[50]="qwer";
char *s2="fdsa";
s1=temp;
printf("%s",s1);puts("\n");
printf("%s",s2);puts("\n");

stringcat(s1,s2);
printf("%s",s1);
puts("\n");
getch();
}

这样也行的!主函数盗用楼上的,嘿嘿!


----------------解决方案--------------------------------------------------------
  相关解决方案