Maison >développement back-end >C++ >Comment puis-je générer des chaînes alphanumériques aléatoires en C ?

Comment puis-je générer des chaînes alphanumériques aléatoires en C ?

DDD
DDDoriginal
2024-11-28 19:39:13816parcourir

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

Génération de chaînes alphanumériques aléatoires en C

La création de chaînes aléatoires composées de caractères alphanumériques est une tâche courante en programmation. En C , il existe plusieurs approches pour y parvenir, chacune avec ses avantages et ses limites.

Une approche simple consiste à utiliser des tables de recherche et la fonction rand() pour générer un index aléatoire dans la table. . Voici un exemple :

#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;
}

Ce code montre comment des chaînes alphanumériques aléatoires peuvent être générées en référençant simplement une table de recherche et en sélectionnant des caractères en fonction d'index aléatoires. Elle est concise et facile à mettre en œuvre.

Cependant, il est important de noter que la fonction rand() génère des nombres pseudo-aléatoires, qui peuvent ne pas convenir aux applications nécessitant un véritable caractère aléatoire. Pour une génération de nombres aléatoires de meilleure qualité, pensez à utiliser une bibliothèque dédiée comme boost::random.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn