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 }
这段代码逻辑也很简单,以当前的时间戳作为种子进行随机数发生器初始化,并设置要生成的字符串要包含的字符的字符集,然后在字符中随机取出特定个数的字符拼接起来即可。
本文来自博客园,作者:Arthurian,转载请注明原文链接:https://www.cnblogs.com/Arthurian/p/18069032
欢迎邮件交流:[email protected]