首页 >后端开发 >C++ >如何在 C 中生成指定长度的随机字母数字字符串?

如何在 C 中生成指定长度的随机字母数字字符串?

Patricia Arquette
Patricia Arquette原创
2024-11-20 12:57:17961浏览

How to Generate a Random Alpha-Numeric String of Specified Length in C  ?

在 C 中创建随机字母数字字符串

本文解决了如何在 C 中生成由指定长度的字母数字字符组成的随机字符串的查询。

Mehrdad Afshari 提出的解决方案是有效的,但对于这个基本任务来说,它可能有点冗长。查找表可以提供更简洁的方法:

#include <ctime>
#include <iostream>
#include <unistd.h>

std::string gen_random(const int len) {
    static const char alphanum[] =
        "0123456789"
        "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
        "abcdefghijklmnopqrstuvwxyz";
    std::string tmp_s;
    tmp_s.reserve(len);

    for (int i = 0; i < len; ++i) {
        tmp_s += alphanum[rand() % (sizeof(alphanum) - 1)];
    }
    
    return tmp_s;
}

int main(int argc, char *argv[]) {
    srand((unsigned)time(NULL) * getpid());     
    std::cout << gen_random(12) << "\n";        
    return 0;
}

需要注意的是 rand 函数生成伪随机数,其质量可能不高。对于更安全的应用程序,请考虑使用加密的强随机数生成器 (CSPRNG)。

以上是如何在 C 中生成指定长度的随机字母数字字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn