文字列を別の文字列にコピーするコードを作成しましたが、各文字の間にスペースがあります。コードを実行すると、文字列の後に「ガベージ」が表示されます。ただし、最後のforループがコメント化されていない場合、後にガベージはありません。なぜこれが起こっているのか誰もが知っていますか?
#include<stdio.h>
#include<string.h>
#define MAX_SIZE 20
main ()
{
char name[MAX_SIZE+ 1];
char cpy[(MAX_SIZE * 2) + 1];
gets(name);
int i = 0;
while (name[i] != '\0' && i < MAX_SIZE)
{
cpy[(i * 2)] = name[i];
cpy[(i * 2) + 1] = ' ';
i++;
}
cpy[strlen(cpy)] = '\0';
printf("%s\n", cpy);
//for (i = 0; i < strlen(cpy); ++i) {
// printf("%c", cpy[i]);
//}
}