IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

comparaison de chaine en vc++


Sujet :

Visual C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 2
    Par défaut comparaison de chaine en vc++
    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

  2. #2
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    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 ?

  3. #3
    Invité
    Invité(e)
    Par défaut
    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.

  4. #4
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    le resultat est toujours false meme si le premier nom est plus grand que le deuxieme
    Si tu veux comparer leur taille alors pense bien à comparer leur... taille, et non leur contenu.

  5. #5
    Membre chevronné Avatar de xxiemeciel
    Inscrit en
    Juin 2005
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 371
    Par défaut
    Salut,

    en passant si tu fais ceci :

    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
    }
    nom1 == nom2 vaudra toujours false puisque tu compares l'Adresse des pointeurs et non le contenu.

    Comme dis plus haut, utilise strcmp ou mieux, std::string qui a un operateur== redefini specialement pour ca.

    XXiemeciel

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    Citation Envoyé par xxiemeciel
    Comme dis plus haut, utilise strcmp ou mieux, std::string qui a un operateur== redefini specialement pour ca.
    La question ne porte pas sur == mais sur >


    Citation Envoyé par voider
    Si tu utilise std::string, ta comparaison devrait etre ok.
    C'est quel genre de comparaison ? Par ordre alphabetique ?

    J'ai regardé dans la doc mais ça m'avance pas a grand chose
    Citation Envoyé par operator>
    Tests if the string object on the left side of the operator is greater than to the string object on the right side.

  7. #7
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    ça doit utiliser la locale courante pour faire la comparaison

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    92
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 92
    Par défaut
    Citation Envoyé par loufoque
    ça doit utiliser la locale courante pour faire la comparaison
    la quoi ??

Discussions similaires

  1. [VBA]excel comparaison de chaine de caractere
    Par ogenki dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/01/2006, 15h32
  2. [langage] Comparaison de chaîne
    Par Fastshadow dans le forum Langage
    Réponses: 7
    Dernier message: 05/09/2004, 18h58
  3. comparaison de chaines de caracteres en PLSQL
    Par biozaxx dans le forum PL/SQL
    Réponses: 3
    Dernier message: 19/08/2004, 09h41
  4. Comparaison de chaines
    Par Marc_P dans le forum Linux
    Réponses: 6
    Dernier message: 17/02/2004, 17h04
  5. [LG]comparaison de chaines de caracteres
    Par thesam dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2003, 22h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo