Pages : 1
#1 Le 18/10/2008, à 16:06
- lebossejames
[resolu] probleme strcmp en c
bonjour,
j'ai fait un if:
if(strcmp(nom,"bonjour")==0)
{
printf("%s",nom);
}
on rentre dans le if mais j'ai fait une printf(nom) et cela met "bonjour" au lieu de l'autre nom que j'ai déclaré en argument de la fonction.
Dernière modification par lebossejames (Le 18/10/2008, à 17:18)
Hors ligne
#2 Le 18/10/2008, à 16:09
- slasher_fun
Re : [resolu] probleme strcmp en c
Si on a pu rentrer dans le if, c'est que nom == "bonjour", donc c'est normal
Hors ligne
#3 Le 18/10/2008, à 16:12
- chcamier
Re : [resolu] probleme strcmp en c
Bonjour,
Tu l'as initialisé comment la variable nom ? par un gets ou fgets ?
Pour être certain du contenu de cette variable, tentes un :
printf("[%s]\n", nom);
Si la réponse est :
[bonjour
]
C'est qu'il y a un caractère saut de ligne en fin de chaîne. Elle contiendrait donc la chaîne "bonjour\n" et non "bonjour".
A+
CC
Hors ligne
#4 Le 18/10/2008, à 16:12
- lebossejames
Re : [resolu] probleme strcmp en c
donc si on veut qu'il ne rentre pas il faut mette ==1
Hors ligne
#5 Le 18/10/2008, à 16:13
- slasher_fun
Re : [resolu] probleme strcmp en c
Non, car dans ce cas il y rentrerait quand même si nom se trouve avant "bonjour" dans l'ordre alphabétique. C'est plutôt !=0 qu'il faut utiliser
Hors ligne
#6 Le 18/10/2008, à 16:13
- lebossejames
Re : [resolu] probleme strcmp en c
char nom[20]
Hors ligne
#7 Le 18/10/2008, à 16:14
- lebossejames
Re : [resolu] probleme strcmp en c
car je veux faire un si le nom est bien bonjour alors on rentre dans le si
si le nom n'est pas bonjour alors on fait ceci....
Hors ligne
#8 Le 18/10/2008, à 17:06
- lebossejames
Re : [resolu] probleme strcmp en c
désolé d'avoir mal exprimé dans les réponses car j'avais un problème de touches de mon clavier ....
Hors ligne
#9 Le 18/10/2008, à 17:08
- lebossejames
Re : [resolu] probleme strcmp en c
mais si vous me dites que strcmp(nom,"bonjour") ==0 c'est équivalent à nom=="bonjour"?
alors comment faire nom!="bonjour" ?
Hors ligne
#10 Le 18/10/2008, à 17:13
- Link31
Re : [resolu] probleme strcmp en c
On t'a déjà répondu.
strcmp(nom, "bonjour") == 0 équivaut à (pseudo-code) : nom == "bonjour"
strcmp(nom, "bonjour") != 0 équivaut à (pseudo-code) : nom != "bonjour"
La fonction strcmp(), sans rentrer dans les détails, renvoie les différences entre les chaînes de caractère contenues dans ses deux arguments. Elle ne renvoie pas "vrai" ou "faux".
Au passage, tu devrais utiliser strncmp().
Dernière modification par Link31 (Le 18/10/2008, à 17:13)
Hors ligne
#11 Le 18/10/2008, à 17:17
- lebossejames
Re : [resolu] probleme strcmp en c
ok c'est bon merci bcp.
Hors ligne
Pages : 1