2017-02-18 16 views
0

私はちょうどC + +でC文字列の配列を作成したいと思います。はい、私はC + +の文字列のデータ型を使用して知っているが、私はC - 文字列の配列を作る必要があります私が働いている。 C文字列自体は文字の配列です。だから、C-ストリングの配列を2次元のchar配列と同じように作るのでしょうか?そして、個々のcharにアクセスするには、それぞれの行と列の位置を指定する必要があります。しかし、私はすべてのインデックスが完全なC文字列を返すC-文字列の1次元配列としてこれを想像したいと思います。どうやってやるの?説明してください。このような配列をループして、すべての文字を別々に返すネストされたループを持つ代わりに、すべてのC文字列を出力するか、返すのですか?C文字列の配列を作成する方法は?

答えて

1

文字列リテラルのためには、ちょうどこの操作を行うことができます。

const char *strings[] = { "foo", "bar", "blech" }; 

を文字列の配列のために、あなたはより多くのこのような何かを行う可能性があります変更したい:あなただけ印刷することができ

char strings[3][80] = { "foo", "bar", "blech" }; 

いずれかの方法

for (int i = 0; i < 3; ++i) 
{ 
    std::cout << strings[i] << std::endl; 
} 

またはおそらくもっと慣用的に:

for (auto & s : strings) 
{ 
    std::cout << s << std::endl; 
} 
0

A Cスタイルの文字列は、基本的には、'\0'で終了char配列、より多くの何物でもありません。

char* my_array_of_strings[ARRAY_SIZE]; 
1がベストです

は、ご利用に応じて異なります

char my_array_of_strings[ARRAY_SIZE][STRING_SIZE + 1]; // +1 for terminator 

それとものようなあなたは、単に配列の配列を持つ「文字列」の配列を、持っているあなたは、ポインタの配列を持つことができます - ケース。

関連する問題