连接两个字符,请问最后的while使用是否正确

#include "stdio.h"
int main(int argc,char *argv[]){
char str1[101],str2[101];
int i,j;
printf("请输入两个字符串:\n");
scanf("%200s%100s",str1,str2);//限制长度以保证不溢出
for(j=i=0;str1[i];i++)//测str1的结尾
while(str1[i++]=str2[j++])//把str2的内容逐一拷贝到str1的后面
printf("\nAfter connection string as follows:\n%s\n",str1);
return 0;
}

供参考:

#include "stdio.h"
int main(int argc,char *argv[])
{
    char str1[201],str2[101];//str1[100]
    int i,j;
    printf("请输入两个字符串:\n");
    scanf("%100s%100s",str1,str2);//str1==100 //限制长度以保证不溢出
    for(j=i=0;str1[i];i++); //这里缺了';'     //测str1的结尾
    while(str1[i++]=str2[j++]);//这里缺了';'  //把str2的内容逐一拷贝到str1的后面
    printf("\nAfter connection string as follows:\n%s\n",str1);
    
    return 0;
}

这样做会出现死循环

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^