Faire un if avec un char
Résolu
Utilisateur anonyme
-
t es con? -
t es con? -
Bonjour,
Je fais cela:
Mais ça fonctionne pas.
J'ai essayé de mettre 'hai' et "hai", mais ça ne fonctionne pas.
Help!
Je fais cela:
#include <stdio.h> #include <stdlib.h> int main() { char alec[100]; printf ("DESU DESU [...] DESU\n"); scanf("%s", alec); if (alec == 'hai') printf ("Desu.\n"); else printf ("noob.\n"); getch(); return 0; }
Mais ça fonctionne pas.
J'ai essayé de mettre 'hai' et "hai", mais ça ne fonctionne pas.
Help!
A voir également:
- If char
- Coco char - Accueil - Réseaux sociaux
- Remplaçant de Coco : quelles solutions pour tchater gratuitement en ligne ? - Accueil - Réseaux sociaux
- Expecting value: line 1 column 1 (char 0) ✓ - Forum MacOS
- If exist ✓ - Forum Autoit / batch
- IF EXIST dans un ".bat" - Forum Programmation
3 réponses
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 ;)
Utilisateur anonyme
C'était nécessaire d'en mettre des centaines.
5hplustard
Merci infiniement :)