为struct的成员生成随机字符串

时间:2014-12-30 16:54:50

标签: c random struct

我想知道如何为结构的成员生成随机字符串,并将此值赋给结构的成员。

我的结构是这样定义的:

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做的?

2 个答案:

答案 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));