c语言:编写一个将两个字符串连接成一个字符串的函数。(不能用strcat函数)

#include<stdio.h>
main()
{
char str1[20]="Hare are you?",str2[4]="abc";
int i;
while(str1[i]!=0)
{
str1[i]=str2[i];
i++;
str2[i]=0;
}
printf("%s");
}
错在哪?帮忙改一下,谢谢。

1 查找到第一个字符串的结尾

2 遍历第二个字符串,逐一复制到第一个字符串尾部,包括结束符。


代码如下:

void cat_str(char *dst, char *src)
{
    while(*dst) dst ++;
    dst --;
    while(*src) *dst++=*src++;
    *dst='\0';
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-11-30
#include<stdio.h>
#include<string.h>
void fun(char *a, char *b)
{
int i=strlen(a),j;
for(j=0;j<=strlen(b);j++)
a[i++]=b[j];
}
int main(void)
{
char a[200],b[100];
printf("输入一个字符串:\n");
gets(a);
printf("输入另一个的字符:\n");
gets(b);
fun(a,b);
printf("%s\n",a);
return 0;
}
你的程序想得到什么样的结果?本回答被提问者采纳
第2个回答  2010-11-30
cat(*p,*q){
char *c=p;
while(*p!='\0')
p++;
while(*q!='\0')
*p=*q;
return c
}
或者找到strcat 函数,拿出来就好了。

while(str1[i]!=0)
请问你想干嘛,。
你自己debug好了。
第3个回答  2010-11-30
+=
例如:string a = "123";
string b = "321";
string c = a += b;
c等于123321本回答被网友采纳
第4个回答  2010-11-30
strcat