Artikel ini menangani pertanyaan tentang cara menjana rentetan rawak yang terdiri daripada aksara alfanumerik dengan panjang tertentu dalam C .
Penyelesaian yang dikemukakan oleh Mehrdad Afshari adalah berkesan, tetapi untuk tugas asas ini, ia mungkin agak bertele-tele. Jadual carian boleh memberikan pendekatan yang lebih ringkas:
#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; }
Adalah penting untuk ambil perhatian bahawa fungsi rand menjana nombor rawak pseudo, yang mungkin tidak berkualiti tinggi. Untuk aplikasi yang lebih selamat, pertimbangkan untuk menggunakan penjana nombor rawak yang kuat secara kriptografi (CSPRNG).
Atas ialah kandungan terperinci Bagaimana untuk Menjana Rentetan Alfa-Numerik Rawak Panjang Ditentukan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!