random element from array in c

扶醉桌前 提交于 2020-01-06 02:24:08

问题


How can I select a random element from a character array in c ?

For instance:

char *array[19];

array[0] = "Hi";


array[1] = "Hello";

etc

I am looking for something like array[rand], where rand is the random integer number between o and the array's length(in this case 20) like 1, 2, 3 , 19 etc.


回答1:


To start things off, since you have an array of strings, not of characters, you have to declare it as char* array[19];

Then, you can declare the following (always useful) macro

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

Last, you can choose arr[rand() % ARR_SIZE(arr)] (while keeping in mind that performing % on rand() is not the proper way to do get a random number within a range.




回答2:


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



回答3:


You can try array[rand() % ARRAY_LEN] but you are going to get a single char and not a char*

and when you are doing array[0] = "Hi"; it's not correct since you are assigning to a single char a char*

or turn your char array[20] into a char *array[20] and you can assign a string of characters




回答4:


What you propose is the best solution there is - choose a random index and then use the element at this index. If your question is how to get a random integer, use the built-in function rand().




回答5:


This can be done using rand in the c library stdlib.h

You can get a random number like this:

char random_elem = array[rand()%20];

and you can print it out like this:

printf("%d",array[rand()%20]);



来源:https://stackoverflow.com/questions/17215242/random-element-from-array-in-c

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!