Faire un if avec un char
Résolu/Fermé
A voir également:
- If char
- Coco char - Accueil - Réseaux sociaux
- If exist ✓ - Forum Autoit / batch
- Char ** - Forum C
- If out - Forum Matériel & Système
- Char(10) excel francais ✓ - Forum Excel
3 réponses
Bilow
Messages postés
1014
Date d'inscription
samedi 21 août 2010
Statut
Membre
Dernière intervention
2 août 2015
117
18 mars 2011 à 17:31
18 mars 2011 à 17:31
Salut !
Tu ne dois pas confondre la ntion de caractère avec les chaînes.
Tu déclares bien ta variable, ensuite :
Des apostrophes ' ', à l'intérieur, tu ne peux y mettre qu'un seul caractère ! Pas plusieurs. Un char (' ') correspond à un nombre, donc tu peux comparer avec ==.
Des guillemets " ", tu peux y mettre un ou plusieurs caractères. Cela correspond à un tableau de caractères ' '. Tu ne peux donc pas le comparer avec ==, mais avec strcmp() (comme déjà dit plus haut, mais sans explications).
Exemple pour un caractère :
Et pour les chaînes de caractère :
strcmp() renvoi 0 si les chaines entrées sont égales, et un autre nombre si elles diffèrent.
Fais aussi attention au buffer overflow. Et essaie aussi de quand tu as un superlong texte qui sert pas à grand chose à poster, ne l'envoi pas. Tes "Desu", tu pouvais en mettre une dizaine et c'était bon ;)
Bye ;)
Tu ne dois pas confondre la ntion de caractère avec les chaînes.
Tu déclares bien ta variable, ensuite :
Des apostrophes ' ', à l'intérieur, tu ne peux y mettre qu'un seul caractère ! Pas plusieurs. Un char (' ') correspond à un nombre, donc tu peux comparer avec ==.
Des guillemets " ", tu peux y mettre un ou plusieurs caractères. Cela correspond à un tableau de caractères ' '. Tu ne peux donc pas le comparer avec ==, mais avec strcmp() (comme déjà dit plus haut, mais sans explications).
Exemple pour un caractère :
char caractere; scanf("%c", &caractere); // N'oublie pas l'éperluette & ! N'entrer qu'un seul caractère. if(caractere == 'a'){ // Si c'est un 'a' printf("C'est un a"); } if(caractere == 13){ // Un char vaut plus ou moins un nombre. '\n' vaut 13 (retour à la ligne) printf("C'est un retour à la ligne."); }
Et pour les chaînes de caractère :
char chaine [100]; scanf("%s", chaine); if(strcmp(chaine, "haha")){ // Ils sont différents printf("Differents.\n"); } else{ printf("Ok.\n"); }
strcmp() renvoi 0 si les chaines entrées sont égales, et un autre nombre si elles diffèrent.
Fais aussi attention au buffer overflow. Et essaie aussi de quand tu as un superlong texte qui sert pas à grand chose à poster, ne l'envoi pas. Tes "Desu", tu pouvais en mettre une dizaine et c'était bon ;)
Bye ;)
18 mars 2011 à 18:15
25 avril 2013 à 10:44