70,020
社区成员




#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int merge(char *,char *);
int main(char argc,char *argv)
{
char str1[20]={"Hello"};
char str2[20]={"World"};
merge(str1,str2);
return 0;
}
int merge(char *s1,char *s2)
{
char *s3 = s1;
char *str;
int size,i;
while(*s1 !='\0') // lost *
s1++;
while(*s2 !='\0') // lost *
{
*(s1++)=*(s2++);
}
size = strlen(s3); // s1的所指的位置已经变了,所以要先用s3保存起始位置
str = (char *)malloc(size+1);
for(i=0;i<size;i++)
str[i] = s3[i]; // 换成s3有起始位置开始
str[i]='\0'; // 应该是'\0'
printf("%s\n",str);
free(str);
getchar();
return 0;
}