この記事では、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 中国語 Web サイトの他の関連記事を参照してください。