私はこの次のプログラムを持っています:
#include <stdio.h>
#include <stdlib.h>
int main()
{
    char name[50],fname[50],sname[50],lname[50];
    int i,j,k;
    printf("First Name:");
    gets(fname);
    printf("sname:");
    gets(sname);
    printf("lname:");
    gets(lname);
    for(i=0;fname[i]!='\0';i++)
        name[i]=fname[i];
    name[i]=' ';
    for(j=0;sname[j]!='\0';j++)
        name[i+j+1]=sname[j];
    name[i+j+1]=' ';
    for(k=0;lname[k]!='\0';k++)
        name[i+j+k+2]=lname[k];
    name[i+j+k+2]=' ';
    printf("Concatenation is %s",name);
}
このプログラムの and にname[i]=' 'スペースname[i+j+1]=' '  が割り当てられている理由がわかりません。name[i+j+k+2]=' '
これらを使用して実行すると、連結のみが取得されますが、それらを削除するとfname、すべての連結ではなく、文字列のみが取得されます。