c++ - 如何在 C++ 中生成随机字符串?

标签 c++ string random

我正在寻找在 C++ 中生成随机字符串的方法。这是我的代码:

string randomStrGen(int length) {
    static string charset = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
    string result;
    result.resize(length);

    srand(time(NULL));
    for (int i = 0; i < length; i++)
        result[i] = charset[rand() % charset.length()];

    return result;
}

但是 seed(time(NULL)) 不够随机。有没有其他更好的方法在 C++ 中生成随机字符串?

最佳答案

不要在每个函数调用上调用 srand() - 只在第一次函数调用或程序启动时调用它一次。您可能希望有一个标志来指示 srand() 是否已被调用。

建议的方法很好,只是您误用了 srand() 并得到可预见的坏结果。

关于c++ - 如何在 C++ 中生成随机字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2146792/

相关文章:

c++ - 如何在我的主程序 C++ 中使用我自己制作的数组头文件?

c - 字符串输入到gmp整数的最大长度?

ruby - 为什么 "lay' s"变成 "layaposs"?

C++ 提取字符串

windows - 是否可以将熵从硬件 RNG 添加到 Windows CryptoAPI?

c++ - 在 C++ 套接字编程中使用 google protobuf 序列化和反序列化消息

c++ - QList中QPushButton的坐标

c - 调用函数两次时生成随机数不起作用

java - Oracle sql随机数种子

c++ - OpenGL:三角形带中的退化三角形在 OpenGL-ES 之外是否可以接受?