我们都知道,使用Qt的qrand()可以生成一个随机的数字,比如说,要生成100以内的随机数,可以使用qrand()%100 来实现,那么如果要生成一个固定长度的随机字符串该怎么弄呢,其实原理很简单,就是事先准备好一个字符串数组,然后结合qrand()函数随机从字符串数组中通过循环取出来就可以啦。

原理已经说过了,其实就是一个非常简单的算法,直接看代码:

QString getRandomString(int length)
    qsrand(QDateTime::currentMSecsSinceEpoch());//为随机值设定一个seed
    const char chrs[] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
    int chrs_size = sizeof(chrs);
    char* ch = new char[length + 1];
    memset(ch, 0, length + 1);
    int randomx = 0;
    for (int i = 0; i < length; ++i)
        randomx= rand() % (chrs_size - 1);
        ch[i] = chrs[randomx];
    QString ret(ch);
    delete[] ch;
    return ret;

getRandomString函数,输入要生成的随机字符串长度,就可以返回随机字符串了,如果要生成其他的特殊字符,可以直接修改chrs数组的内容就可以了。

代码很简单,不再赘述。

概述我们都知道,使用Qt的qrand()可以生成一个随机的数字,比如说,要生成100以内的随机数,可以使用qrand()%100 来实现,那么如果要生成一个固定长度的随机字符串该怎么弄呢,其实原理很简单,就是事先准备好一个字符串数组,然后结合qrand()函数随机从字符串数组中通过循环取出来就可以啦。代码实现原理已经说过了,其实就是一个非常简单的算法,直接看代码:QString getRa...
  在编写QT项目时,产生随机数和随机字符串是十分常见的需求,使用qrand函数就能够实现,但是如果不使用种子的话,产生的随机数并不是真正的随机数,而是固定的数字。通常情况下,我们会使用当前时间作为随机数的种子,以产生真正意义上的随机数 ............
之前写过一篇生成随机密码的文章:C++的生成随机密码 原理其实很简单,事先准备一串字符串,再随机字符串中提取字符。比如说,要生成128以内的随机数,可以使用qrand()%128 来实现,QT版本的代码如下: #include <QtCore/QCoreApplication> #include <QDateTime> #include <QDebug> QString makeRandomString(int length) qsrand(QDateTime
使用场景对数据等的编号,为了对齐,常常会用0001,0002,….,1001等表示,在Qt中用QString可以进行相关转换操作,还能对十六进制、二进制等转换。代码如下:#include <QCoreApplication> #include <QDebug>int main(int argc, char *argv[]) QCoreApplication a(argc, argv);
QString str = "你好啊,这是测试文字换行啊"; QRect bdRect =painter.boundingRect( QRect(0, 0, 220, 0) , Qt::TextWordWrap, str ) ; painter.drawRect( bdRect ); painter.drawText
QString ToStr(int number, int size){ return QString("%1").arg(number, size, 10, QChar('0'));} http://bbs.csdn.net/topics/390674390?page=1 转载于:https://www.cnblogs.com/xihong2014/p/6646311.html...
QString QString::arg(qulonglong a, int fieldWidth = 0, int base = 10, QChar fillChar = QLatin1Char(’ ')) const fieldWidth:最小长度 base : 进制 fillChar:位数不足时填充的字符 //qulonglong number = ui->Number_lineEdit->text().toULongLong(); qulonglong numb
在绘制文本时经常会遇到文本长度不确定,导致绘制宽度无法确定的问题。 一般这种我都是设置一个固定的绘制宽度,显示部分文本,显示不足部分用省略号表示。 QString Tool::getElidedText(QFont font, QString str, int MaxWidth) const QFontMetrics fontWidth(font); int width = fontWidth.width(str); //计算字符串宽度 if (width >= Ma
function get_hz($giveStr="",$num=10){ $str = "哈森撒大葱撒出的主要产品是听见啦金玉良缘冰清玉洁继往开来锦绣山河冰雪聪明功成名就桃花潭水深千尺不及汪伦送我情先帝创业未半而中道今天下三分益州疲弊此诚危急存亡之秋也然侍卫之臣不懈于内忠志之士忘身于外者盖追先帝之殊遇欲报之于陛下也诚宜开张圣听";# 字库