Rechercher : dans
Par :

Operations sur type enum en C

Dernière réponse le 27 oct 2008 à 14:46:06 thotoss, le 27 oct 2008 à 12:19:39 
 Signaler ce message aux modérateurs

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,

Configuration: Linux
Firefox 3.0.3

Meilleures réponses pour « operations sur type enum en C » dans :
Les piles en langage C VoirLes piles Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la pile IV. Opérations sur les piles A. Initialisation B. Insertion d'un élément dans la pile C. Ôter un élément de la pile D. Affichage...
Les templates en C++ VoirIntroduction Avantages Inconvénients Quand utiliser des templates ? Que dois-je mettre dans les .hpp et dans les .cpp ? Convention de notations Quelques templates célèbres STL BGL Premiers pas Spécifications de templates Template par...
Langage C++ - Les types de données VoirLes types de données Les données manipulées en langage C++, comme en langage C, sont typées, c'est-à-dire que pour chaque donnée que l'on utilise (dans les variables par exemple) il faut préciser le type de donnée, ce qui permet de connaître...
Langage C - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...
Langage C++ - Les opérateurs VoirQu'est-ce qu'un opérateur ? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, etc. On distingue plusieurs types d'opérateurs : les opérateurs de calcul les opérateurs...

1

Char Snipeur, le 27 oct 2008 à 12:54:47
  • +1

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}; Salutation !  avant je croyais, maintenant je suis fixé.Jésu­s Christ
Char Snipeur

Répondre à Char Snipeur

2

thotoss, le 27 oct 2008 à 13:10:04

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épondre à thotoss

3

thotoss, le 27 oct 2008 à 13:12:34

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épondre à thotoss

4

Char Snipeur, le 27 oct 2008 à 13:19:27

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];}. Salutation !  avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur

5

thotoss, le 27 oct 2008 à 13:23:50

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épondre à thotoss

6

thotoss, le 27 oct 2008 à 14:11:24

Personne n'a d'idée pour m'aider svp ????
merci ...

Répondre à thotoss

7

 Char Snipeur, le 27 oct 2008 à 14:46:06

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. Salutation !  avant je croyais, maintenant je suis fixé.Jésus Christ
Char Snipeur

Répondre à Char Snipeur
Collection CommentÇaMarche.net