我想用数组把两串字符合并,结果第一串正常输出,到第二串就变成一个问号了

我想用数组把两串字符合并,结果第一串正常输出,到第二串就变成一个问号了


#include 
using namespace std;
int main()
{
    char a[80], b[80],c[80];
    int i,j;
    cout << "输入一字符串" << endl;
    gets_s(a);
    cout << "再输入另一字符串" << endl;
    gets_s(b);
    for (i = 0;i < 80, a[i] != '\0';i++)
        c[i] = a[i];
    c[i + 1] = ' ';
    for (j = 0;j < 80, b[j] != '\0';j++)
        c[i + 2 + j] = b[j];
    for (i = 0;i < 80, c[i] != '\0';i++)
        a[i] = c[i];
    for (i = 0;i < 80, a[i] != '\0';i++)
        cout << a[i];
    cout << endl;
}

img


int main()
{
    char a[80]={0}, b[80],c[80]={0};
    int i,j;
    cout << "输入一字符串" << endl;
    gets_s(a);
    cout << "再输入另一字符串" << endl;
    gets_s(b);
    for (i = 0;i < 80, a[i] != '\0';i++)
        c[i] = a[i];
    c[i] = ' ';
    for (j = 0;j < 80, b[j] != '\0';j++)
        c[i + 1 + j] = b[j];
    for (i = 0;i < 80, c[i] != '\0';i++)
        a[i] = c[i];
    a[i] = 0;
    for (i = 0;i < 80, a[i] != '\0';i++)
        cout << a[i];
    cout << endl;
}

img