• ベストアンサー

構造体の配列の配列

include <stdio.h> struct test{ char str[80]; }; void main(void) { struct test array[10] ・・・ とあるのですが、arrayに文字列を代入する方法は、 struct test array[10] = {{"kei"},{"fsa"},{"tu"}, {"vu"},{"qu"},{"bi"},{"bu"},{"wo"},{"qiu"}}; と言うような方法しかないのでしょうか? ひとつひとつ代入はできないのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ddnp009
  • ベストアンサー率25% (15/58)
回答No.3

struct test array[10] = {{"kei"},{"fsa"},{"tu"}, {"vu"},{"qu"},{"bi"},{"bu"},{"wo"},{"qiu"}}; ↑これは初期化。代入ではありません。 この問題は要するに、char[80]への代入が出来るかどうかということですね。 Cにおいては文字列という概念がないので、1の方の回答どおり、標準関数使いましょう

skyskynet
質問者

お礼

参考になりました!ありがとうございました!

その他の回答 (2)

  • mac_res
  • ベストアンサー率36% (568/1571)
回答No.2

#include <stdio.h> #include <string.h> struct test { char str[80]; }; int main(void) { struct test array[10]; int i; strcpy(array[0].str, "kei"); strcpy(array[1].str, "fsa"); strcpy(array[2].str, "tu"); strcpy(array[3].str, "vu"); strcpy(array[4].str, "qu"); strcpy(array[5].str, "bi"); strcpy(array[6].str, "bu"); strcpy(array[7].str, "wo"); strcpy(array[8].str, "qiu"); for (i = 0; i < 9; i++) { printf("array[%d].str = %s\n", i, array[i].str); } return 0; }

skyskynet
質問者

お礼

参考になりました!ありがとうございました!

  • harlan
  • ベストアンサー率77% (234/303)
回答No.1

文字列として扱うのなら、strcpy( )などの文字列コピー関数を使うのが一般的だと思います。 strcpy(array[0].str, "kei"); strcpy(array[1].str, "fsa"); ・・・

skyskynet
質問者

お礼

参考になりました!ありがとうございました!

関連するQ&A