[C] un entier (represente ASCII) en Char?

Résolu
allergen -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,

J'ai essayer pas mal de chose je pete un cable.

Je souhaite genrer un chiffre entre 65 et 90 qui represente les lettres A à Z en ASCII:
num= rand()% (0-25) + 65 ; (ca marche)

et convertir le chifre obtenu en un Caractere Char:
lettre=(char)sprintf("%d", num);
sprintf(lettre,"d",num) //avec ou sans &devant les variables j ai tout essayeé

et je n 'y arrive pas. Auriez vous une idée?
Merci
Configuration: Linux
Firefox 2.0.0.14

3 réponses

  1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    regarde ici pour créer les nombre aléatoires

    lettre=num ne fonctionne pas
    oui il fonctionne, à condition que lettre soit un char

    dans ton cas par exemple il suffit de faire

    lami20j@debian:~/trash$ cat conversion.c
    #include<stdio.h>
    
    int main()
    {
      int num;
      char lettre;
    
      num= rand()% (0-25) + 65 ; //(ca marche)
      lettre=num;
      printf("%d - %c\n",num, lettre);
      return 0;
    }
    
    lami20j@debian:~/trash$ gcc conversion.c
    lami20j@debian:~/trash$ ./a.out
    73 - I

    2
  2. allergen
     
    int num
    char lettre

    lettre=num ne fonctionne pas

    Core dumped lors de l'execution
    0
  3. allergen
     
    en fait ca fonctionne c'est dans le printf je mettait %s a la place de %c pour afficher le caractere
    0