cs_YURIX
Messages postés18Date d'inscriptionsamedi 21 août 2004StatutMembreDernière intervention12 décembre 2009
-
27 mars 2006 à 01:35
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
27 mars 2006 à 02:08
J'ai un probléme avec une chaine de caractere
char choix1;
printf("Test des axes L,T et V : AX\n");
printf("\nVotre choix :");
scanf("%s", choix1);
if(choix1 == 'AX') {...}
Comment assigner plusieurs caractères ( AX ici) ?
J'ai beau chercher je ne trouve pas...
Merci à tous !
cs_max12
Messages postés1491Date d'inscriptiondimanche 19 novembre 2000StatutModérateurDernière intervention 7 juillet 2014 27 mars 2006 à 01:47
choix1 doit être un pointeur pour qui pointe sur le premier élément mémoire d'une chaine de caractère, donc un pointeur désingné comme : char choix1[50]; ou un pointeur pour allocation dynamique. Chaque chaine se termine avec 0 comme caractère (géré automatiquement par scanf() et autres fonctions de traitement de chaine.
Ensuite pour vérifier ta condition c'est "ax" et non pas '' car 'ax' est pour un seul caractère, et encore ce n'est pas bon il faut utiliser une fonction du C pour comparer deux chaines ce qui donne :
char choix1[50];
printf("Test des axes L,T et V : AX\n");
printf("\nVotre choix :");
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 mars 2006 à 02:08
char[1] devra contenir un 0, il ne te restera donc qu'1 place en char[0] pour n'y mettre qu'1 seul caractère.
A toi de voir mais en aucun cas ne pourra trouver une équivalence avec "AX".
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 mars 2006 à 01:50
OUPS, devancé.
Prenez l'habitude de mettre des multiples de 4 sur les réservations de taille de variable, c'est l'alignement correct sur system 32 bits. Il est clair que le compilo aura transformé le char[50] en 52 mais autant coder proprement, c'est juste une bonne habitude à prendre.