QT生成固定长度的随机字符串

最近项目中有一个需要使用QT生成固定长度随机字符串的需求,需求也很简单,就是生成一个n位的仅包含0-9以及大写字母的字符串,因为这也是第一次使用QT自身的随机数,这里就做一下简单记录。

废话不多说,直接上代码。

 1 QString getRandomString(int length)
 2 {
 3     qsrand(QDateTime::currentMSecsSinceEpoch());//为随机值设定一个seed
 4     const char chrs[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
 5     int chrs_size = sizeof(chrs);
 6 
 7     char* ch = new char[length + 1];
 8     memset(ch, 0, length + 1);
 9     int randomx = 0;
10     for (int i = 0; i < length; ++i)
11     {
12         randomx= qrand() % (chrs_size - 1);
13         ch[i] = chrs[randomx];
14     }
15 
16     QString ret(ch);
17     delete[] ch;
18     return ret;
19 }
View Code

 这段代码逻辑也很简单,以当前的时间戳作为种子进行随机数发生器初始化,并设置要生成的字符串要包含的字符的字符集,然后在字符中随机取出特定个数的字符拼接起来即可。

 

posted on 2024-03-12 22:11  Arthurian  阅读(135)  评论(0编辑  收藏  举报