bonjour tout le monde
merci de bien m'expliquer comment comparer deux chaines en vc++
exemple
if (eleve[1].nom>eleve[2].nom) ...
le resultat est toujours false meme si le premier nom est plus grand que le deuxieme
merci beaucoup
bonjour tout le monde
merci de bien m'expliquer comment comparer deux chaines en vc++
exemple
if (eleve[1].nom>eleve[2].nom) ...
le resultat est toujours false meme si le premier nom est plus grand que le deuxieme
merci beaucoup
T'entends quoi par comparer deux chaines ?
Comparer leur taille ? Comparer par ordre alphabetique ?
C'est quoi tes chaines ? un char* ? un CString ? un std::string ?
Si tu utilise std::string, ta comparaison devrait etre ok. Si tu ne l'utilise pas, je te recommande de le faire, c'est standard et ca evite bien des erreurs.
Si tu utilise des char* ou des char[], tu peux comparer des chaines avec strcmp.
Si tu veux comparer leur taille alors pense bien à comparer leur... taille, et non leur contenu.le resultat est toujours false meme si le premier nom est plus grand que le deuxieme
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Salut,
en passant si tu fais ceci :
nom1 == nom2 vaudra toujours false puisque tu compares l'Adresse des pointeurs et non le contenu.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 const char* nom1 = "toto"; const char* nom2 = "toto"; if(nom1 == nom2) { //Do something }
Comme dis plus haut, utilise strcmp ou mieux, std::string qui a un operateur== redefini specialement pour ca.
XXiemeciel
La question ne porte pas sur == mais sur >Envoyé par xxiemeciel
C'est quel genre de comparaison ? Par ordre alphabetique ?Envoyé par voider
J'ai regardé dans la doc mais ça m'avance pas a grand chose
Envoyé par operator>
ça doit utiliser la locale courante pour faire la comparaison
la quoi ??Envoyé par loufoque
Partager