本文解決瞭如何在 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中文網其他相關文章!