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

C++ Discussion :

Pb avec strcomp


Sujet :

C++

  1. #1
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Par défaut Pb avec strcomp
    slt,
    j'ai un pb dans la compraison des chaines de caracteres avec strcomp (pour deschaine de taille 8, par ex). Pourriez vous m'indiquer un autre moyen pour faire la comparaison

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    salut,
    strcomp je connais pas, ni en C, ni en C++
    je connais strcmp() en C, et std::string::compare() en C++
    Peux tu montrer ton poblème ?

  3. #3
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    L'opérateur == sur les string de la SL ?

  4. #4
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Par défaut
    je code en C++ et j'utilise strcmp mais dés fois ça ne fonctionne pas. j'ai vérifié ca en faisant pas à pas

  5. #5
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par befalimpertinent Voir le message
    L'opérateur == sur les string de la SL ?
    Exactement.
    Utilise std::string :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    std::string chaine1 = "Vive la SL";
    std::string chaine2 = "voir la FAQ";
     
    if (chaine1 == chaine2) 
    {
       std::cout << " Ca m'étonnerait" << std::endl;
    }

  6. #6
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Ou si tu veux faire ça à l'ancienne ou que tu préfères les choses compliqués aux choses simples tu peux t'amuser à comparer caractère par caractère dans une boucle.

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par ouinih Voir le message
    slt,
    j'ai un pb dans la compraison des chaines de caracteres avec strcomp (pour deschaine de taille 8, par ex). Pourriez vous m'indiquer un autre moyen pour faire la comparaison

    Merci
    si tu est sur que tes deux chaînes sont correcte, t'as une erreur mémoire avant...
    bien venu dans le coté obscure

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    string::operator== ne fait qu'appeler string::compare, mais c'est vrai que ça peut être + joli si l'on veut comparer des chaines en totalité.

    pourquoi ne montres-tu pas ton code ?

  9. #9
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Par défaut
    en faite dans mon code, j'essaie de comparer des chaines de caracteres en Hexa (ex 01 20 00 ef) je regarde dans le Debbuger mes chaines sont differentes mains strcmp ou "==" me sort que le sont égaux. Je pense que ça viens du faite que je compare des caracteres qui signifient rien en ascii

  10. #10
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Oui effectivement, strcmp ne marchera pas pour comparer de tels chaînes. Dans ton exemple, strcmp réussira si les deux chaines commencent par 01 20 00 même si la suite est différente.

    Dans de tels cas, oui il faut alors comparer caractère par caractère jusqu'à la fin (alors que strcmp s'arrêtera au premier 00 rencontré).

  11. #11
    Membre éclairé
    Inscrit en
    Juin 2007
    Messages
    284
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 284
    Par défaut
    Comment je peux parcourrir le chaine pour le faire caractere par caractere?

  12. #12
    Membre émérite
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    865
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 865
    Par défaut
    Bah quelque chose comme ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for (int i = 0 ; i < size ; i++)
       if (hex1[i] != hex[i]) return 0;
    return 1;
    Mais bon, on est en C++. Est-ce quelque chose comme ceci pourrait t'aider ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    	std::ostringstream oss1;
    	oss1 << std::hex << 0xDF0030FE;
    	std::string hex1 = oss1.str();
    	std::ostringstream oss2;
    	oss2 << std::hex << 0xDF00AABB;
    	std::string hex2 = oss2.str();
    	assert (hex1 != hex2);

  13. #13
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    ou alors


    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int val1[8];
    int val2[8];
    .
    .
    .
    if (equal (val1, val1+8,val2 ))
    {
    cout<<"val1 == val2"<<endl;
    }
    else
    {
    cout<<"val1 != val2"<<endl;
    }

  14. #14
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Y a pas tout simplement "memcmp" ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requete avec OBCD et visual c++
    Par Anonymous dans le forum MFC
    Réponses: 12
    Dernier message: 18/11/2004, 16h15
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  4. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 11h51
  5. Réponses: 2
    Dernier message: 20/03/2002, 23h01

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