J'ai codé
et quand word = 0x071DE16C "either" le test est false???
Code : Sélectionner tout - Visualiser dans une fenêtre à part if( word == "either")
celui qui m'aidera sera
J'ai codé
et quand word = 0x071DE16C "either" le test est false???
Code : Sélectionner tout - Visualiser dans une fenêtre à part if( word == "either")
celui qui m'aidera sera
Quel est le type de word?
C'est un char*
Sur des char*, "==" compare les adresses, pas le contenu de la chaine.
Vous avez 2 fois la même chaine à 2 adresses mémoires différentes, c'est tout.
Des chaînes de caractère de type char* se comparent avec strcmp(). (ou s'il est possible que l'une ou l'autre chaîne soit un pointeur nul, écrire un wrapper qui vérifie ça d'abord, car la norme C que j'ai sous la main ne spécifie pas le comportement dans ces cas-là).
J'ai codé :
et toujours avec les mêmes valeurs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 bool b0 = strcmp( word, "either"); if( b0)
le test retourne false
RTFM pour la 1000 fois.
http://www.cplusplus.com/reference/cstring/strcmp/
Cela ne renvoie pas un boolean mais int.
de passer d'un booleen à un int
et d'utiliser strcoll
Le choix entre strcoll() et strcmp() dépend ce que tu veux: Si tu veux tester une égalité exacte au bit près, strcmp() est ce qu'il te faut. Si tu veux quelque chose dépendant de la locale (comme un tri alphabétique qui prend en compte les accents), c'est là que tu as besoin de strcoll().
Dans tous les cas, le résultat est un int qui est supérieur à zéro si la première chaîne est strictement "supérieure" à la seconde, inférieur à zéro si c'est l'inverse, et égal à zéro si les deux chaînes sont considérées comme égales par la comparaison.
Cette convention est suivie également par .Net et Java, il n'y a que la bibliothèque standard du C++ qui utilise une autre convention (booléen qui est vrai en cas d'infériorité stricte).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager