0

私は絞首刑執行人をプログラミングしています。

疑問詞はcharword_list[]、const文字列に保存されます。

word_list[] = {"apple", "computer", ..., "mouse"};

質問はからランダムに選択されword_list[]、ランダム関数を使用するときに、の文字列の数を知りたいですword_list[]

word_listのポインタchar*ですよね?

最後に、どうすれば文字列の数を知ることができますword_list[]か?

4

4 に答える 4

3

word_list[]コードスニペットのように宣言されている場合は、次のようにして要素の数を取得できます。

const size_t word_count = sizeof(word_list) / sizeof(word_list[0]);

実行時std::vectorにのを読み取るなど、より柔軟な方法を検討することもできます。std::stringこれにより、再コンパイルせずに単語リストを変更でき、vector::size()関数によって要素の数がわかります。

于 2012-06-03T03:36:41.193 に答える
1

定義した初期化された配列の場合、Cメソッドを使用して、配列内の要素の数を判別できます。このメソッドは、sizeof演算子を使用して配列オブジェクトの合計サイズを見つけ、その値を配列の要素のサイズで除算します。

const char * word_list[] = { "a", "b", "c" };

for (int i = 0; i < sizeof(word_list)/sizeof(word_list[0]); ++i) {
    // do something
}

word_list代わりにSTLであった場合は、コンテナーでこのメソッドをvector使用できたはずです。size()

于 2012-06-03T03:37:14.343 に答える
0

word_listchar* [](charポインタの配列)である必要があります。配列なのでサイズは。で取得できますsizeof (word_list) / sizeof(word_list[0])

于 2012-06-03T03:36:33.707 に答える
0

文字列はハードコーディングされているので、文字列の数も実際にハードコーディングする必要があります。

char* word_list[] = {"apple", "computer", "mouse"};
int words = 3;
于 2012-06-03T03:37:42.350 に答える