最近項目中有一個需要使用QT生成固定長度隨機字元串的需求,需求也很簡單,就是生成一個n位的僅包含0-9以及大寫字母的字元串,因為這也是第一次使用QT自身的隨機數,這裡就做一下簡單記錄。 廢話不多說,直接上代碼。 1 QString getRandomString(int length) 2 { 3 ...
最近項目中有一個需要使用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
這段代碼邏輯也很簡單,以當前的時間戳作為種子進行隨機數發生器初始化,並設置要生成的字元串要包含的字元的字元集,然後在字元中隨機取出特定個數的字元拼接起來即可。
本文來自博客園,作者:Arthurian,轉載請註明原文鏈接:https://www.cnblogs.com/Arthurian/p/18069032
歡迎郵件交流:[email protected]