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.
Version imprimable
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:
ThierryCode:
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 */ }
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.Citation:
Envoyé par skulled
JcCode:
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... :aie:
Merci à vous!