IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Fonctions aléatoires pour caractères


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Fonctions aléatoires pour caractères
    Bonjour à tous,

    Je me demande si vous ne pourriez-pas me dire ou je dois aller pour avoir de la documentation sur les fonctions aléatoires, car je dois donner un nom aléatoire à un fichier, mais je ne vois nulle par ou l'on parle de caractères, merci pour vos infos.

    Michael

  2. #2
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par IDE
    Je me demande si vous ne pourriez-pas me dire ou je dois aller pour avoir de la documentation sur les fonctions aléatoires, car je dois donner un nom aléatoire à un fichier, mais je ne vois nulle par ou l'on parle de caractères, merci pour vos infos.
    Bah, il suffit de mettre des caractères dans une chaine :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char const s[] = "ABCDEF";
    et de tirer un indice entre 0 et sizeof s - 1...

    ensuite, le caractère est s[indice]...

  3. #3
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Merci Emmanuel, j'ai l'impression d'être ton boulet

    Michael.

  4. #4
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    J'ai essayé de faire celci mais sa ne fonctionne pas, mais je m'en doutais également

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    char const s[] = "ABCDEF";
    int i;
     
    for ( i=0 ; i < 5 ; i++ )
    {
     
     s[i] = rand();
     
     printf("%c",s[i]);
     
    }
    si quelqu'un pourrait m'aider un peu merci

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    2 choses :

    • a) rand() est une fonction qui :

      • 1) doit être initialisée par srand
      • 2) prend une valeur entre 0 et RAND_MAX


    • b) les caractères ASCII sont en fait des chiffres qui se suivent, et, si me souvenirs sont bons , les majuscules (donc A) commence à 65 et les minuscules (donc a) à 97 .


    voir

    http://c.developpez.com/faq/c/?page=...#NOMBRES_srand

    et

    http://nicolasj.developpez.com/articles/libc/hasard/



    Donc, le principe est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Initialiser la fonction
    calculer un lancer aléatoire, et le convertir entre 0 et 51 par une règle de 3
    si valeur > 25 
           ajouter (valeur-26) à 97
    sinon 
           ajouter valeur à 65

  6. #6
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Merci pour ta réponse, c'est bien sympa, je vais essayer de regarder cela.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    j'ai ajouté 2 liens et corrigé 2 trucs..

  8. #8
    IDE
    IDE est déconnecté
    Membre éclairé Avatar de IDE
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 238
    Par défaut Suite
    Impeccable, merci

  9. #9
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par souviron34
    • b) les caractères ASCII sont en fait des chiffres qui se suivent, et, si me souvenirs sont bons , les majuscules (donc A) commence à 65 et les minuscules (donc a) à 97 .
    Oui, mais personne n'a parlé d'ASCII, mais de caractères tout court. Restons portable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
       char const s[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
       char filename[8 + 1];
       size_t i;
     
       for (i = 0; i < sizeof filename - 1; i++)
       {
          /* naif mais suffisant pour demarrer */
          filename[i] = s[rand () % (sizeof s - 1)];
       }
       filename[i] = 0;
     
       printf ("filename = '%s'\n", filename);

  10. #10
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Par défaut
    Salut,

    "srand", c'est parfois utile avant "rand", qu'en pensez-vous ?

  11. #11
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Citation Envoyé par dj.motte
    Salut,

    "srand", c'est parfois utile avant "rand", qu'en pensez-vous ?
    Je suis d'accord avec toi.

  12. #12
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par dj.motte
    "srand", c'est parfois utile avant "rand", qu'en pensez-vous ?
    Oui, et ?

Discussions similaires

  1. Fonction Aléatoire pour URL
    Par hackoofr dans le forum VBScript
    Réponses: 1
    Dernier message: 15/10/2012, 22h04
  2. fonction escape() pour caractères non spéciaux
    Par jaljal dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 04/06/2010, 22h26
  3. Fonction REPLACE() pour le caractère "
    Par snoopy69 dans le forum VBA Access
    Réponses: 4
    Dernier message: 10/12/2007, 10h05
  4. Fonction à utiliser pour remplacer les accents et autres caractères
    Par Christophe Charron dans le forum Langage
    Réponses: 2
    Dernier message: 05/08/2007, 12h50
  5. Fonction split pour chaines de caractères
    Par Munkey74 dans le forum Langage
    Réponses: 6
    Dernier message: 05/06/2007, 21h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo