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

Résolu/Fermé
allergen - 7 juin 2008 à 12:15
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 7 juin 2008 à 12:41
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

3 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
7 juin 2008 à 12:41
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
int num
char lettre

lettre=num ne fonctionne pas

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