Attribuer une chaine de car a un chiffre - inverse de l'enum

salut

je cherche a attribuer une chaine de caractere a un chiffre.

comme si je faisais un enum mais dnas le sens inverse

exemple si je rentre 1 je vx que ca sorte janvier.
evidement je ne veux pas commencer avec un switch car trop long.
si quelqu’un a une solution ca serait sympas de me l’expliquer.

Merci a vous

Genre un tableau? ou une table de hashage?

const char* const* mois = {"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"};

fprintf(stdout, "mois[0] = %s\n", mois[0] );

Sinon peux tu ajouter le langage dans le titre de ton message s’il te plaît?

oui mais il veut que janvier égal 1
donc


const char* const* mois = {"Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"};
int numeroDuMois = 1;
//quelque part on rentre le numéro du mois
//quelque part on fait quelque chose
fprintf(stdout, "mois[%d] = %s\n", numeroDuMois,mois[numeroDuMois-1] );

:stuck_out_tongue:

Ou plus simple :

const char* const* mois = {"", "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre"};

:smiley:

spafo

tu peux m’expliquer pourquoi tu utilises deux fois ‘const’? :jap:

Histoire qu’il touche pas au tableau :slight_smile: En gros, tu déclare les chaînes constantes, et le tableau aussi. Ca évite de faire mois[i] = …; si j’ai bon souvenir :slight_smile: