"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > 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++ ?

Publié le 2024-12-21
Parcourir:567

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 
#include 
#include 

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 

Ce code montre comment des chaînes alphanumériques aléatoires peuvent être générées en faisant simplement référence à 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é, envisagez d'utiliser une bibliothèque dédiée comme boost::random.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3