C语言生成指定长度随机字符串 您所在的位置:网站首页 c语言中如何随机生成数字的函数 C语言生成指定长度随机字符串

C语言生成指定长度随机字符串

2023-12-20 19:11| 来源: 网络整理| 查看: 265

问题

今天发现一个以前写的生成指定长度的随机字符串的函数,在连续调用时会返回相同的字符串,发现是以time(NULL)作为随机种子,于是做了下改进。

办法

将种子改为当前秒数和微秒的和,这样就可以保证连续请求(us等级)多次不会导致生成相同的字符序列。

#include #include #include #include int get_random_str(char* random_str, const int random_len) { int i, random_num, seed_str_len; struct timeval tv; unsigned int seed_num; char seed_str[] = "abcdefghijklmnopqrstuvwxyz" "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; //随机字符串的随机字符集 seed_str_len = strlen(seed_str); gettimeofday(&tv, NULL); seed_num = (unsigned int)(tv.tv_sec + tv.tv_usec); //超了unsigned int的范围也无所谓,我们要的只是不同的种子数字 srand(seed_num); for(i = 0; i char str[10]; get_random_str(str, 8); printf("str %s\n", str); get_random_str(str, 8); printf("str %s\n", str); get_random_str(str, 8); printf("str %s\n", str); get_random_str(str, 8); printf("str %s\n", str); get_random_str(str, 8); printf("str %s\n", str); return 0; }


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有