C : Expression avec espaces et union
Résolu
musicetcie
Messages postés
393
Date d'inscription
Statut
Membre
Dernière intervention
-
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11069 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai défini des structures :
Maintenant, j'aimerais que l'utilisateur entre une expression (ex : "benjamin a 32 bonbons"), et que pour chaque caractère, il me dise s'il s'agit d'un chiffre ou d'une lettre...
J'ai donc 2 problèmes : l'entrée de l'expression, car scanf ne prend pas en compte ce qu'il y a après les espaces, et le fait qu'il m'affiche le type CHIFFRE ou LETTRE à chaque fois. Je ne vois pas du tout comment faire.
Je vous remercie de votre aide !!
J'ai défini des structures :
enum typeElement { CHIFFRE , LETTRE}; union donneeElement { float chiffre; char lettre; }; struct Element { enum typeElement type; union donneeElement donnee; };
Maintenant, j'aimerais que l'utilisateur entre une expression (ex : "benjamin a 32 bonbons"), et que pour chaque caractère, il me dise s'il s'agit d'un chiffre ou d'une lettre...
J'ai donc 2 problèmes : l'entrée de l'expression, car scanf ne prend pas en compte ce qu'il y a après les espaces, et le fait qu'il m'affiche le type CHIFFRE ou LETTRE à chaque fois. Je ne vois pas du tout comment faire.
Je vous remercie de votre aide !!
Mais pour lire la valeur du caractère, je n'utilise pas mes structures... Si?
Et comment je regarde si c'est compris entre a et z ? avec leur valeur ascii ?
Avec la façon que je t'ai donnée, tu en as pas besoin.
Sinon pour regarder si c'est compris entre 'a' et 'z' c'est la valeur ascii.
Par exemple : car=fgetc(...); if (car>='a' && car <='z') ...
aussi, si j'ai ma phrase "benjamin a 9 bonbons".
Est-il possible de créer un flottant qui prenne la valeur 9 ?
Parce que du coup, j'ai un char, et je voudrais un float...
Merci encore !!
Par exemple : tu as le caractère '9'.
Si tu fais : float a='9'-'0'; tu obtiendras a=9.0f.
Cdlt,