从 string 字符串中随机提取字符,组成指定长度的新字符串问题。

查看 60|回复 2
作者:qazwsxkevin   
#include [i]
#include
#include
#include
using namespace std;
int main(int argc, char **argv)
{
    string allcode = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
   
    srand(time(NULL));
   
    int l = 8; //指定的新字符串长度
    string s;  //新组成的随机字符串
    char cc;   //被抽中的字符
   
    for (int i=0;i
另外一个问题是,观察到 srand(time(NULL))的值是 1 秒内不会变的(在我用的电脑和系统上是这样),
如果一秒内有很多次循环,这个似乎不太好,应该如何更“真”的保证和上次循环有不同随机?

字符, int, string, include

qazwsxkevin
OP
  
by the way ,原本是 python 做这个的,速度有些慢,所以临时找了大学时候的 Dev-C++绿色版搭配旧 GCC 3.4.2 版本,把 python 脚本转成 C++来完成这个事情,C++11 是没有的。。。
wevsty   
srand 只调用一次不需要每次循环都重设 srand 。
如果需要真随机数或者用于加密学等用途请使用平台提供的 API 或者 STL 抽象出来的 std::random_device 。
但既然不支持 CPP11 ,那么你就只能选择使用平台提供的 API 了。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部