Bonjour,
Comme écrit dans le titre, je voudrais savoir si l'instruction "switch" fonctionne avec des chaines de caractères.
Peut-on écrire :
switch(sens)
{ case "haut" : ... break;
case "bas" : ... break;
}
Merci d'avance.
Bonjour,
Comme écrit dans le titre, je voudrais savoir si l'instruction "switch" fonctionne avec des chaines de caractères.
Peut-on écrire :
switch(sens)
{ case "haut" : ... break;
case "bas" : ... break;
}
Merci d'avance.
Salut,
Non. L'instruction switch ne fonctionne qu'avec des types entiers (char, short, int et long). Pour réaliser ce que tu veux:
Thierry
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <string.h> /* ... */ if (!strcmp(sens, "haut")) { /* traitements */ } else if (!strcmp(sens, "bas")) { /* traitements */ } else { /* cas par defaut */ }
"The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
"If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow
FAQ-Python FAQ-C FAQ-C++
+
Comme a dit mugicka, non. Par contre, si ta première lettre est unique pour chaque cas, tu peux toujours utiliser cette première lettre pour ton switch.Envoyé par skulled
Jc
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 switch(sens[0]) { case 'h': ... break; /*cas haut*/ case 'b': ... break; /* cas bas */ }
Ou bien, faire un truc plus bizarre encore, si tu as une bonne fonction de hachage pour laquelle chaque chaîne utilisée retourne une valeur différente...![]()
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Partager