本文解决了如何在 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中文网其他相关文章!