C言語の配列に文字列をいれたいのですが


配列にテキストファイルから取ってきた文字列をいれたいのですが、

[code]

    char memo[10], name[10], memomon[10], memoday[10], memoname[10][10];
    while(fscanf(fp, "%d %d %s %d", &mon, &day, name, &num) != EOF) {
       memomon[i] = mon;
       memoday[i] = day;
       memoname[i] = *name;
       memo[i] = num;
       i++;
    }
    
[/code]

この場合どうやったら文字列をすべてmemonameの中にいれられますか？




そもそも一時変数に代入する必要がないので、私だったら

[code]

    int i, memomon[10], memoday[10], memonum[10];
    char memoname[10][10];
    for (
        i = 0;
        i < 10 && fscanf(fp, "%d %d %9s %d", &memomon[i], &memoday[i], memoname[i], &memonum[i]) == 4;
        ++i
    );
    
[/code]

と書くと思います。もし一時変数を使用するならば、文字列に関しては `strcpy` でコピーすればいいんじゃないでしょうか。

[code]

    strcpy(memoname[i], name);
    
[/code]

**※ バッファオーバーフローを防ぐために、文字列のフォーマットには必ず`%9s` のように文字数を指定しましょう。**

