c中数组的随机元素

时间:2013-06-20 13:44:02

标签: c arrays random int

如何从c?

中的字符数组中选择随机元素

例如:

char *array[19];

array[0] = "Hi";


array[1] = "Hello";

我正在寻找像array [rand]这样的东西,其中rand是o和数组长度之间的随机整数(在这种情况下为20),如1,2,3,19等。

5 个答案:

答案 0 :(得分:2)

要开始,因为你有一个字符串数组而不是字符数组,你必须将它声明为char* array[19];

然后,您可以声明以下(总是有用的)宏

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

最后,您可以选择arr[rand() % ARR_SIZE(arr)](同时请注意,在%上执行rand() 正确的方法是获取随机数范围。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

您可以尝试数组[rand()%ARRAY_LEN],但是您将获得一个字符而不是char*

当你在做数组[0] =“嗨”时;这是不正确的,因为您要分配到单个charchar*

或将您的char array[20]变成char *array[20],然后您可以分配一串字符

答案 3 :(得分:0)

您建议的是最佳解决方案 - 选择随机索引,然后在此索引处使用该元素。如果您的问题是如何获得随机整数,请使用内置函数rand()

答案 4 :(得分:0)

这可以使用c库stdlib.h中的rand完成。

您可以获得这样的随机数:

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

,您可以像这样打印出来:

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