字符串应怎样输入与输出

为什么数组一与数组二的字符串大小均为一;

img


为什么输出结果出现错误,字符串应怎样输出呢?

img


以下为本题代码

img

img


程序的问题我看出来的在图上,然后试下下面代码吧,仅供参考


    char a1[64] = {0};
    char a2[64] = {0};
    char a3[64] = {0};
    int i = 0;
    int sz = 0, sz2 = 0;
    printf("Input First:");
    while((a1[i++] = getchar()) != '\n');
    sz = i - 1; //减1是不要'\n'
    i = 0;
    printf("Input Second:");
    while((a2[i++] = getchar()) != '\n');
    sz2 = i - 1;

    for(i = 0; i < sz; i++)
    {
        a3[i] = a1[i];
    }

    for(i = 0; i < sz2; i++)
    {
        a3[sz + i] = a2[i];
    }
    a3[sz + i] = '\0';
    
    printf("a3 = %s\n",a3);