Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah Saya Boleh Menjana Rentetan Alfa-Numerik Rawak dalam C?

Bagaimanakah Saya Boleh Menjana Rentetan Alfa-Numerik Rawak dalam C?

DDD
Lepaskan: 2024-11-28 19:39:13
asal
870 orang telah melayarinya

How Can I Generate Random Alpha-Numeric Strings in C  ?

Menjana Rentetan Alfa-Numerik Rawak dalam C

Mencipta rentetan rawak yang terdiri daripada aksara alfa-angka ialah tugas biasa dalam pengaturcaraan. Dalam C , terdapat beberapa pendekatan untuk mencapai ini, masing-masing dengan kelebihan dan hadnya.

Satu pendekatan mudah ialah menggunakan jadual carian dan fungsi rand() untuk menjana indeks rawak dalam jadual . Berikut ialah contoh:

#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;
}
Salin selepas log masuk

Kod ini menunjukkan cara rentetan alfa-numerik rawak boleh dijana dengan hanya merujuk jadual carian dan memilih aksara berdasarkan indeks rawak. Ia ringkas dan mudah untuk dilaksanakan.

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa fungsi rand() menjana nombor rawak pseudo, yang mungkin tidak sesuai untuk aplikasi yang memerlukan rawak sebenar. Untuk penjanaan nombor rawak berkualiti tinggi, pertimbangkan untuk menggunakan perpustakaan khusus seperti boost::random.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Rentetan Alfa-Numerik Rawak dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan