c の文字配列からランダムな要素を選択するにはどうすればよいですか?
例えば:
char *array[19];
array[0] = "Hi";
array[1] = "Hello";
等
array[rand] のようなものを探しています。ここで、rand は、1、2、3、19 などの o と配列の長さ (この場合は 20) の間のランダムな整数です。
まず、文字列ではなく文字列の配列があるため、次のように宣言する必要があります。char* array[19];
次に、次の (常に役立つ) マクロを宣言できます。
#define ARR_SIZE(arr) ( sizeof((arr)) / sizeof((arr[0])) )
最後に、選択することができますarr[rand() % ARR_SIZE(arr)]
(実行%
することは、範囲内の乱数を取得するための適切な方法でrand()
はないことに注意してください.
あなたが提案するのは、そこにある最良の解決策です。ランダムなインデックスを選択してから、このインデックスの要素を使用してください。あなたの質問がランダムな整数を取得する方法である場合は、組み込み関数を使用してrand()
ください。