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

としたいと考えています。

どのようにすればいいのでしょうか?
数字を配列に格納することはできます。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

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]も同様 /
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/24 18:40

> いっこ足りない。



失礼しました。
ご指摘ありがとうございます。
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2011/04/24 18:40

> n = strlen(s);


> a[0] = malloc(n);

いっこ足りない。

n = strlen(s) + 1;
a[0] = malloc(n);
    • good
    • 0
この回答へのお礼

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

お礼日時:2011/04/24 18:40

CやC++にはJavaと違って、文字列型はありません。

したがって、文字列型の配列は作れません。

CやC++で文字配列を扱うには、文字の配列を作ります。同様に、文字の配列の配列、つまり、文字の2次元配列を作ればいいのです。参考: http://www.geocities.jp/ky_webid/c/025.html
    • good
    • 0
この回答へのお礼

ありがとうございます。

お礼日時:2011/04/24 18:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング