QT生成固定長度的隨機字串

Arthurian發表於2024-03-12

最近專案中有一個需要使用QT生成固定長度隨機字串的需求,需求也很簡單,就是生成一個n位的僅包含0-9以及大寫字母的字串,因為這也是第一次使用QT自身的隨機數,這裡就做一下簡單記錄。

廢話不多說,直接上程式碼。

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

這段程式碼邏輯也很簡單,以當前的時間戳作為種子進行隨機數發生器初始化,並設定要生成的字串要包含的字元的字符集,然後在字元中隨機取出特定個數的字元拼接起來即可。

相關文章