for(i=0;str1[i]!='\0';i++)
for(j=0;str2[j]!='\0';j++)
{
str1[i]=str2[j];
i++;
}
肯定错了啊,比如说比如i = 0,你这循环是把str2数组里的元素按循序赋值给了str1【0】,
到最后str1里全部都是str2里的最后一个字符
你可以先找个str1里的最后一个字符,然后再把str2的字符一个个转移到str1
{
char str1[100],str2[100];
int i=0,j=0;
printf("please input the string1:");
scanf("%s",&str1);
printf("please input the string2:");
scanf("%s",&str2);
//gets(str2);
for(i=0;str1[i]!='\0';i++)
{
i++;
}
for(j=0;str2[j]!='\0';j++)
{
str1[i+j]=str2[j];
}
str1[i+j+1]='\0';
printf("the catenated string is %s",str1);
}