• ベストアンサー

文字列を配列として扱う方法について

文字列を配列に格納したいのですが、うまくいかずに困っています。 例えば、 a[1]=1番目のファイル.csv; a[2]=2番目のふく; a[3]=凄く長い名前.csv; としたいと考えています。 どのようにすればいいのでしょうか? 数字を配列に格納することはできます。

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

  • ベストアンサー
  • jacta
  • ベストアンサー率26% (845/3158)
回答No.2

C++であれば... std::string a[3]; a[0] = "1番目のファイル.csv"; a[1] = "2番目のふく"; a[2] = "凄く長い名前.csv"; とすればOKです。 Cでは... char *a[3]; a[0] = "1番目のファイル.csv"; a[1] = "2番目のふく"; a[2] = "凄く長い名前.csv"; これでも済みますが、文字列をコピーする必要があるならずっと難しくなります。 char *a[3]; char *s; size_t n; s = "1番目のファイル.csv"; n = strlen(s); a[0] = malloc(n); if (a[0] == NULL)  /* エラー処理 */ strcpy(a[0], s); /* 以下、a[1]とa[2]も同様 /

saterain20
質問者

お礼

ありがとうございます。うまくいきました。

その他の回答 (3)

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.4

> いっこ足りない。 失礼しました。 ご指摘ありがとうございます。

saterain20
質問者

お礼

ありがとうございます。

回答No.3

> n = strlen(s); > a[0] = malloc(n); いっこ足りない。 n = strlen(s) + 1; a[0] = malloc(n);

saterain20
質問者

お礼

訂正ありがとうございます。うまくいかず悩んでました。

回答No.1

CやC++にはJavaと違って、文字列型はありません。したがって、文字列型の配列は作れません。 CやC++で文字配列を扱うには、文字の配列を作ります。同様に、文字の配列の配列、つまり、文字の2次元配列を作ればいいのです。参考: http://www.geocities.jp/ky_webid/c/025.html

saterain20
質問者

お礼

ありがとうございます。