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