Qt/c ++随机字符串生成

use*_*217 5 c++ qt

我正在创建一个应用程序,我需要生成多个随机字符串,几乎就像一个唯一的ID,它由一定长度的ASCII字符组成,混合了大写/小写/数字字符.

是否有任何Qt库来实现这一目标?如果没有,在纯c ++中生成多个随机字符串的首选方法是什么?

The*_*ght 23

你可以写一个这样的函数:

QString GetRandomString() const
{
   const QString possibleCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
   const int randomStringLength = 12; // assuming you want random strings of 12 characters

   QString randomString;
   for(int i=0; i<randomStringLength; ++i)
   {
       int index = qrand() % possibleCharacters.length();
       QChar nextChar = possibleCharacters.at(index);
       randomString.append(nextChar);
   }
   return randomString;
}
Run Code Online (Sandbox Code Playgroud)

  • @BarryDoyle,您可能需要使用qsrand种子随机数生成器http://qt-project.org/doc/qt-4.8/qtglobal.html#qsrand (3认同)
  • 非常好的解决方案,虽然我遇到的问题是每次运行程序时答案都不是随机的(即使在关闭并打开QT Creator之后)......任何想法可能导致这种情况? (2认同)