从C中的数组随机元素(random element from array in c)

2019-10-18 06:26发布

我怎样才能选择一个在C字符数组随机元素?

例如:

char *array[19];

array[0] = "Hi";


array[1] = "Hello";

等等

我寻找类似阵列[兰特],其中兰特为O且所述阵列的长度之间的随机整数数(在此情况下20)样1,2,3,19等。

Answer 1:

要开始做事了,因为你有一个字符串数组的不是字符,你必须把它作为申报char* array[19];

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

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

最后,你可以选择arr[rand() % ARR_SIZE(arr)]同时牢记执行%rand()不是做得到的范围内的随机数的正确方法。



Answer 2:

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


Answer 3:

你可以试试阵列[兰特()%ARRAY_LEN],但你会得到一个单一的字符,而不是一个char*

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

或者把你的char array[20]char *array[20]你可以指定字符的字符串



Answer 4:

建议你有什么是最好的解决方案 - 选择一个随机指数,然后使用这个元素索引处。 如果你的问题是如何得到一个随机整数,使用内置函数rand()



Answer 5:

这可以在C库stdlib.h中使用兰特完成

你可以得到这样一个随机数:

炭random_elem =阵列[兰特()%20];

你可以把它打印出来是这样的:

的printf( “%d”,阵列[兰特()%20]);



文章来源: random element from array in c