我想知道如何为结构的成员生成随机字符串,并将此值赋给结构的成员。
我的结构是这样定义的:
struct student{
int key;
char name[25];
}
我已经生成了struct的成员“key”的随机数。
该方法的部分代码:
struct student s;
int r = rand() % 5000;
s.key=r;
注意:使用srand(time(NULL));在main()中定义。
我是如何为s.name做的?
答案 0 :(得分:2)
rand()返回int
,因此您无法使用rand()
为结构成员分配随机字符串。
你可以使用rand()生成随机字符串。
char a[]="abcde...z";
for(i=0;i<20;i++)
{
int r = rand() %26;
s.name[i] = a[r];
}
s.name[20] = '\0';
循环后确保NULL终止字符串。
答案 1 :(得分:1)
这将生成小写字符的随机字符串
void
generate_random_string(char *string, size_t length)
{
size_t i;
for (i = 0 ; i < length - 1 ; i++)
string[i] = rand() % ('z' - 'a') + 'a';
string[length - 1] = '\0';
}
只需将你的struct成员传递给它
generate_random_string(s.name, sizeof(s.name));