Téléchargement
illégal
Posez votre question Signaler

Operations sur type enum en C [Fermé]

thotoss 23Messages postés 26 juin 2007Date d'inscription 11 mars 2010Dernière intervention - Dernière réponse le 27 oct. 2008 à 14:46
Bonjour,
Je cherche a effetuer des operations sur un type enum que j'ai defini ainsi :
typedef enum phrase {
"Il fait beau",
"Il pleut",
"Il neige"
};
Voila, une fois le type definie, je voudrais savoir comment comparer 2 valeur du type enum, et comment en initialiser une a la premiere valeur de phrase, c'est a dire "Il fait beau" .
1/
Ainsi j'ai une fonction qui prend obligatoirement en parametre un int, et qui renvoi obligatoirement un char* correspondant a la valeur du type enum en fonction de i :
const char *fonction1(int i);
ainsi si i = 1, const char *fonction(int i) renvoi "Il pleut". Comment faire ?
2/ J'ai un 2e question : meme fonction mais qui renvoi une valeur du type enum :
enum phrase fonction2(int i);
de méme si i=2 , enum phrase fonction2(int i) renvoi "Il neige". Comment faire ?
Merci si vous pouvez m'adier parsque je suis un peu perdu et je ne trouve nulle part une explication !
Cordialement,
Lire la suite 

Operations sur type enum en C »

7 réponses
Réponse
+1
moins plus
8-/ ça fonctionne comme ça ton enum ???
Pour moi, un enum ne s'utilise pas du tout comme ça !
Si ça compile, je retourne voir mes cour, mais sinon, je te conseil d'aller revoir tes cours.
enum phrase{il_fait_beau=0,var2=1,var3=2};
Réponse
+0
moins plus
si j'initialise le type enum comme toi, cela me met 2 erreur par ligne a la compilation :
ex :
140: erreur: stray «\303» in program
140: erreur: stray «\251» in program
donc je ne sais pas pourquoi ...

Réponse
+0
moins plus
ok c'est bon désolé j'ai resolu ce probleme ça compile corrctement avec le type enum bien initialisé !
Mais pour aprés je suis toujours coincé ! Merci si vous pouvez m'aider !

Réponse
+0
moins plus
pour le reste, je ne sais pas trop, mais je ne pense pas que le type enum soit le mieux adapté à ce que tu veux faire.
Si je comprends bien, tu veux associé un entier à une chaine de caractère.
tu peux faire une tableau :
const char** phrase={"il pleut","il fait beau","il neige"};
fonction1 devient : fonction1(int i){return phrase[i];}.
Réponse
+0
moins plus
C'était egalement l'idée que j'avai eu, de passer par un tableau de pointeur char a 2 dimensions, mais l'énoncé est stricte, il faut utiliser un type enum... donc je ne vois pas du tout et je bloque ! merci quans meme ...

Réponse
+0
moins plus
Personne n'a d'idée pour m'aider svp ????
merci ...

Réponse
+0
moins plus
avec un enum, moi je passerai par un switch:
switch (i)
case il_fait_beau: return "il fait beau";
case il_neige : return "il neige";
...
Mais je trouve que ça tiens du bourrin, du lourd.
Ce document intitulé « operations sur type enum en C » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?