Comparer constante globale int avec une variable char[]
tructruc
-
juliencolin54 Messages postés 217 Date d'inscription Statut Membre Dernière intervention -
juliencolin54 Messages postés 217 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'écris actuellement un programme C où j'ai 2 variables globales déclarées comme ceci :
#define ACTIONA 2
#define ACTIONB 3
Un moment dans le programme l'utilisateur doit rentrer ACTIONA ou ACTIONB, enregistre dans une variable de nom "cd" et de type char[50].
Je souhaiterais savoir comment je peux comparer cd avec ACTIONA ou ACTIONB.
J'ai essayé avec strcmp, avec ==, en castant cd en int mais rien n'y fait...
PS : Je ne peux pas proposer un menu à l'utilisateur<
Merci pour votre aide =)
J'écris actuellement un programme C où j'ai 2 variables globales déclarées comme ceci :
#define ACTIONA 2
#define ACTIONB 3
Un moment dans le programme l'utilisateur doit rentrer ACTIONA ou ACTIONB, enregistre dans une variable de nom "cd" et de type char[50].
Je souhaiterais savoir comment je peux comparer cd avec ACTIONA ou ACTIONB.
J'ai essayé avec strcmp, avec ==, en castant cd en int mais rien n'y fait...
PS : Je ne peux pas proposer un menu à l'utilisateur<
Merci pour votre aide =)
A voir également:
- Comparer constante globale int avec une variable char[]
- Coco char - Accueil - Réseaux sociaux
- Comparer prix amazon - Guide
- Meilleur prix Amazon : payer moins cher avec Amazin'Europe - Accueil - Commerce
- Int input python - Forum Python
- Convertir un char en int en c - Forum C
3 réponses
Utilise la fonction atoi().
Tu lui envoies un ta variable cd de type char * et elle te convertie le nombre sous forme de chaine de charactère contenue dans cd en un int. Tu stocke ce résultat dans un int et tu fait une condition en utilisant les opérateur suivant :
et : &&
ou : ||
différent !=
....
Tu lui envoies un ta variable cd de type char * et elle te convertie le nombre sous forme de chaine de charactère contenue dans cd en un int. Tu stocke ce résultat dans un int et tu fait une condition en utilisant les opérateur suivant :
et : &&
ou : ||
différent !=
....
fiddy
Messages postés
11069
Date d'inscription
Statut
Contributeur
Dernière intervention
1 846
atoi() est obsolète. Il vaut mieux utiliser strtol().
Bonjour,
Lorsque je fais, par exemple :
etat=atoi(cd); et que je fais afficher etat, ça affiche 0 au lieu de 2 ou 3
idem avec strtol
auriez-vous une idée svp?
Lorsque je fais, par exemple :
etat=atoi(cd); et que je fais afficher etat, ça affiche 0 au lieu de 2 ou 3
idem avec strtol
auriez-vous une idée svp?
Bonjour à toi.
Malgrès que ton problème soit encore assez flou :
- Si se sont des chaînes de caractères que tu veut comparer tu peux utiliser strcmp();
- Si se sont des int, tu compares avec des comparateurs logiques.
Imaginons l'utilisateur rentre par exemple "ACTIONA"
Malgrès que ton problème soit encore assez flou :
- Si se sont des chaînes de caractères que tu veut comparer tu peux utiliser strcmp();
- Si se sont des int, tu compares avec des comparateurs logiques.
Imaginons l'utilisateur rentre par exemple "ACTIONA"
int user_action; user_action = 0; if (strcmp(cd, "ACTIONA") == 0) user_action = ACTIONA else if (strcmp(cd, "ACTIONB") == 0) user_action = ACTIONB // ici user_action vaudra 2, 3, ou zéro si l'entrée est érronée