élément aléatoire du tableau en c

Comment sélectionner un élément aléatoire dans un tableau de caractères en c?

Par exemple:

char *array[19]; array[0] = "Hi"; array[1] = "Hello"; 

etc

Je cherche quelque chose comme array [rand], où rand est le nombre entier aléatoire compris entre o et la longueur du tableau (dans ce cas, 20) comme 1, 2, 3, 19, etc.

Pour commencer, comme vous avez un tableau de chaînes et non de caractères, vous devez le déclarer comme char* array[19];

Ensuite, vous pouvez déclarer la macro suivante (toujours utile)

#define ARR_SIZE(arr) ( sizeof((arr)) / sizeof((arr[0])) )

Enfin, vous pouvez choisir arr[rand() % ARR_SIZE(arr)] (tout en gardant à l’esprit arr[rand() % ARR_SIZE(arr)] % sur rand() n’est pas la bonne façon d’obtenir un nombre aléatoire dans une plage.

 int n = rand()%20; printf("%s\n", array[n]); 

Vous pouvez essayer array [rand ()% ARRAY_LEN] mais vous allez obtenir un seul caractère et non un caractère char*

et quand vous faites array [0] = “Hi”; ce n’est pas correct puisque vous atsortingbuez à un seul caractère un caractère char*

ou transformez votre char array[20] en un char *array[20] type char *array[20] et vous pouvez affecter une chaîne de caractères

Ce que vous proposez est la meilleure solution – choisissez un index aléatoire, puis utilisez l’élément à cet index. Si votre question est de savoir comment obtenir un entier aléatoire, utilisez la fonction intégrée rand() .