C++ 随机数字以及随机数字加字母生成的案例

我就废话不多说了,大家还是直接看代码吧~

#include <time.h>
#include <sys/timeb.h>
void MainWindow::slot_clicked()
{
QString strRand;
int length = 32;
QString strTmp = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM";
struct timeb timer;
ftime(&timer);
srand(timer.time * 1000 + timer.millitm);//毫秒种子
for(int i = 0; i < length; i++ )
{
int j = rand()%35;
strRand += strTmp.at(j);
}
qDebug() << strRand;

补充知识:C/C++生成随机数字符串(错误方法和正确方法)

先说错误的方法。生成的10个随机数是一样的。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
void make_rand_str(char *pchStr,int iLen)
{
  time_t tCurTime = 0;
  int iRandValue = 0;
  int i = 0;
  unsigned int state = 0;

  if(NULL == pchStr || iLen <= 0)
  {
 return;
  }

  tCurTime = time(NULL);
  printf("\n***%ld***%u**\n",tCurTime ,(unsigned int)tCurTime);
  srand((unsigned int)tCurTime); 

  iRandValue = rand();
  snprintf(pchStr,iLen,"%d",iRandValue);
  printf("\n====%s====\n",pchStr);
  return;
  }

int main()
{
  char str[20];
  int i = 0;
  for(i = 0; i < 10; i++)
  {
    memset(str,0,sizeof(str));
    make_rand_str(str,sizeof(str));
   // printf("\n====%s====\n",str);
  }
  return 0;
}

正确的方法,生成了10个不一样的随机数

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <string.h>
void make_rand_str(char *pchStr,int iLen,int num)
{
  time_t tCurTime = 0;
  int iRandValue = 0;
  int i = 0;
  unsigned int state = 0;
  if(NULL == pchStr || iLen <= 0)
  {
 return;
  }

  tCurTime = time(NULL);
  printf("\n***%ld***%u**\n",tCurTime ,(unsigned int)tCurTime);
  srand((unsigned int)tCurTime);
  for(i = 0;i < num; i++)
  {
    iRandValue = rand();
    snprintf(pchStr,iLen,"%d",iRandValue);
    printf("\n====%s====\n",pchStr);
  }
  return;
}

int main()
{
  char str[20];
  memset(str,0,sizeof(str));
  make_rand_str(str,sizeof(str),10); // 10个随机数
  // printf("\n====%s====\n",str);
  return 0;
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方欢迎留言讨论,望不吝赐教。

(0)

相关推荐

  • C++编程产生指定范围内的随机数

    C/C++编程产生指定范围内的随机数,直接上个小程序: #include <stdlib.h> #include <time.h> #include <stdio.h> #include <string> #include <string.h> /* * 获取随机数 * return : 随机数 */ int commonGetRandNumber(const int low, const int high) { int randNum = 0;

  • C++生成不重复的随机整数

    C++生成不重复的随机数,供大家参考,具体内容如下 给定正整数的范围[n,m],生成k个不重复的随机数字. IDE是vs013. #include "stdafx.h" #include <iostream> #include <vector> #include <stdlib.h> #include <time.h> #include<list> using namespace std; int _tmain(int arg

  • C++常见获取随机数的方法小结

    本文实例讲述了C++常见获取随机数的方法.分享给大家供大家参考,具体如下: 方法一: 使用 rand 函数可以获取,如下. #include<iostream> #include<ctime> using namespace std; int main() { for (int i = 0; i < 10; i++) cout << rand() << endl; return 0; } 随机数大小是在0到RAND_MAX,值为2147483647,它

  • C++实现产生随机数和相应的猜拳小游戏实例代码

    一.简介 c++中,产生随机数的通用方法就是调用 srand()和 rand()  函数. Rand 单纯的rand()会返回一个0至RAND_MAX之间的随机数值,而RAND_MAX的值与int位数有关,最小是32767.不过rand()是一次性的,因为系统默认的随机数种子为1,只要随机数种子不变,其生成的随机数序列就不会改变. 其实,对于rand()的范围,我们是可以进行人为设定的,只需要在宏定义中定义一个random(int x)函数,就可以生成范围为0至x的随机数值.当然,也可以定义为r

  • C++生成随机数的实现代码

    C风格 C为随机数提供的工具是rand.srand和RAND_MAX,定义在<stdlib.h>中. srand为rand设置种子,如果不设置,相当于调用过srand(1).rand产生伪随机数,其范围为0到RAND_MAX,RAND_MAX至少是32767,在MSVC和GCC中这个值都是32767. 伪随机数看似随机,实则是有规律可循的,对于相同的种子值,rand产生的序列完全相同,也就是说无论你给srand一个什么数字,多次运行程序的结果都将相同--除非你给srand的是不同的数字,比如时

  • C++ 中随机函数random函数的使用方法

    C++ 中随机函数random函数的使用方法 一.random函数不是ANSI C标准,不能在gcc,vc等编译器下编译通过. 可改用C++下的rand函数来实现. 1.C++标准函数库提供一随机数生成器rand,返回0-RAND_MAX之间均匀分布的伪随机整数. RAND_MAX必须至少为32767.rand()函数不接受参数,默认以1为种子(即起始值). 随机数生成器总是以相同的种子开始,所以形成的伪随机数列也相同,失去了随机意义.(但这样便于程序调试) 2.C++中另一函数srand(),

  • C++ 随机数字以及随机数字加字母生成的案例

    我就废话不多说了,大家还是直接看代码吧~ #include <time.h> #include <sys/timeb.h> void MainWindow::slot_clicked() { QString strRand; int length = 32; QString strTmp = "1234567890QWERTYUIOPASDFGHJKLZXCVBNM"; struct timeb timer; ftime(&timer); srand(t

  • JS简单生成由字母数字组合随机字符串示例

    本文实例讲述了JS简单生成由字母数字组合随机字符串.分享给大家供大家参考,具体如下: 前言 最近有个需求,是需要生成3-32位长度的字母数字组合的随机字符串,另一个是生成43位随机字符串. 方法一 奇妙的写法 Math.random().toString(36).substr(2); 输出结果 解释 很有意思,研究了一下,基本上toString后的参数规定可以是2-36之间的任意整数,不写的话默认是10(也就是十进制),此时返回的值就是那个随机数. 若是偶数,返回的数值字符串都是短的,若是奇数,

  • js实现数字每三位加逗号的方法

    本文实例讲述了js实现数字每三位加逗号的方法.分享给大家供大家参考.具体实现方法如下: function formatNum(str){ var newStr = ""; var count = 0; if(str.indexOf(".")==-1){ for(var i=str.length-1;i>=0;i--){ if(count % 3 == 0 && count != 0){ newStr = str.charAt(i) + &quo

  • php数字每三位加逗号的功能函数

    php实现数字格式化,数字每三位加逗号的功能函数,具体代码如下: function num_format($num){ if(!is_numeric($num)){ return false; } $num = explode('.',$num);//把整数和小数分开 $rl = $num[1];//小数部分的值 $j = strlen($num[0]) % 3;//整数有多少位 $sl = substr($num[0], 0, $j);//前面不满三位的数取出来 $sr = substr($n

  • Python数字图像处理代数之加减乘运算

    目录 代数运算 定义 加法运算 减法运算 乘法运算 代数运算 定义 加法运算 图像叠加需要满足该条件:两幅图像的像素必须相同(尺寸,形状) 减法运算 乘法运算 1.图像的局部显示. 2.用二值蒙版图像与原图像做乘法. 以上就是Python数字图像处理代数之加减乘运算的详细内容,更多关于Python数字图像处理代数运算的资料请关注我们其它相关文章!

  • php实现的数字验证码及数字运算验证码

    本文实例讲述了php实现的数字验证码及数字运算验证码.分享给大家供大家参考.具体如下: 1. 数字验证码: <?php //第一个实例是数字验证码,最常见的验证码.多少个数字可以由自己决定. //$num是生成的验证码包含几个数字 getValidate(4,60,20); function getValidate($num,$w,$h){ $code = ""; for($i=0;$i<$num;$i++){ $code .= rand(0,9); } //code变量最

  • C# 生成验证码取随机数字加字母(改进版)

    之前一直用的生成验证码方法,取4位数字没有问题,结果加上字母,取6位后,效率非常低. 改进了一下,方法如下 复制代码 代码如下: var text2 = ""; var random = new Random((int)DateTime.Now.Ticks); const string textArray = "23456789ABCDEFGHGKLMNPQRSTUVWXYZ"; for (var i = 0; i < iVcodeNum; i++) { te

  • PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法

    本文实例讲述了PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法.分享给大家供大家参考,具体如下: PHP计算大数值运算时会出错,当数字太大时,数值会变成科学计数.那怎么来进行PHP超大数值运算,包括加减乘除,幂运算,平方根,取模运算呢? 要解决科学计数的问题,只要赋值时加一对引号即可. 如: <?php $n = '22222222222222222222222222220'; echo $n; ?> 如果不加引号,显示2.2222222222222E+28,加引号后显示22222

  • js实现文本框只允许输入数字并限制数字大小的方法

    本文实例讲述了js实现文本框只允许输入数字并限制数字大小的方法.分享给大家供大家参考.具体如下: 这是一个很个性的输入框特效,规定文本框只允许输入数字,如果你执意要输入其它的字符,则输入的字符将自动消失,除非你输入的是规定内的字符格式,并且对输入数字大小也有限制!为保证兼容性,请使用火狐浏览器. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-input-limit-num-codes/ 具体代码如下: <!DOCTYPE html PUB

  • C#基于正则表达式删除字符串中数字或非数字的方法

    本文实例讲述了C#基于正则表达式删除字符串中数字或非数字的方法.分享给大家供大家参考,具体如下: /// 去掉字符串中的数字 public static string RemoveNumber(string key) { return Regex.Replace(key, @"\d", ""); } //去掉字符串中的非数字 public static string RemoveNotNumber(string key) { return Regex.Replace

随机推荐