Non, c´est que tu t´es gourré là:
"
gets ( ch);
switch ( ch2) {
"
Tu demande la lettre dans la variable ch, puis tu évalue ch2... C´est complêtement con, non? Ça serait ch que tu devrais évaluer....
AUTRE CHOSE:
Hyper dangereux! Tu fais une déférenciation hors de portée du buffer!
"
char ch[1];
int ch2;
ch[1] = ch2;
"
Hors les tableaux se déférencent à partir de 0, pas de 1!
Et en plus, ça ne set rien , ça! Qu´essayais-tu de faire comme ça?
En plus, tu n,as pas choisi une solution facile: c,est plus simple de n´utiliser que un char, plutot qu´une chaîne de caractères dans ce cas...
Voici comment je l´écrirais, avec des chaînes, comme tu l´as fait:
- include < stdio.h>
- include < stdlib.h>
- include < string.h>
int main(void)
{
printf( " Bienvenue dans l´univers de Krumland ! \n\n choisissez votre race : Archer(A) , Soldat(S) , Mage(M) \n");
char ch[2] = {NULL,NULL};
int choosechar;
int classe;
char * class_name;
gets ( ch);
switch ( ch[0]) {
case ´A´:
case ´a´:
classe = 1;
class_name = " archer\0";
break;
case ´S´:
case ´s´:
classe = 2;
class_name = " soldat\0";
break;
case ´M´:
case ´m´:
classe = 3;
class_name = " mage\0";
break;
default:
printf ( " Vous devez presser un des characteres suivant : A , a , S , s , M , m" ) ;
break;
}
printf ( " Votre race est %s" , class_name);
getchar();
return 0;
}
Kelios
---------