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 :

problem de comparaison strcmp()


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Février 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 11
    Par défaut problem de comparaison strcmp()
    bonjour,

    J'ai un probleme avec un de mes code en C.
    je veux comparer un tableau de caracteres avec un autre tableau de chaine de carateres, mais je n'y arrive pas.

    Je m'explique:

    je possede un tableau comme celui-ci :
    char * paragraphes[] = {
    "P",
    "LI",
    "BR",
    "TR",
    "H1",
    "H2",
    "H3",
    "H4",
    "H5",
    "H6",
    "H7",
    NULL
    };

    puis j'ai un autre tableau obenue apres divers manipulation qui me donne par exemple

    tab[0] = 'B';
    tab[1] = 'R';
    tab[3] = '\0';

    je dois par la suite verifier si le contenue de mes caracteres obtenue dans le deuxieme tableau correspond a une chaine de caracteres dans le premiere tableau.

    Dans mon cas il devrait y avoir une correspondance puisque dans le premier tableau j'ai la chaine BR et dans le deuxieme j'obtient les deux caracteres B et R
    donc cela devrait fonctionner.

    le probleme est que je ne trouve pas de code qui me permettrait de faire cette correspondance. On m'a suggerer strcmp mais pas vraiment de reussite.

    voila je ne sais pas si mon explication est assez claire, mais si oui j'aimerai avoir vos idee pour resoudre cce petit details.

    Merci

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    montre comment tu utilises strcmp().
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 115
    Par défaut
    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       foo(void)
    {
      char    *tab[] = {"chaine1", "chaine2", "chaine3", 0};
      char    *str = "chaine2";
      int     i;
     
      for (i = 0; tab[i]; i++)
      {
        if (strcmp(str, tab[i]) == 0)
          return (1);
      }
      return (0);
    }

    Cette fonction retourne 1 si str se trouve dans tab.

  4. #4
    Membre habitué
    Inscrit en
    Février 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 11
    Par défaut
    comme preciser plus haut le probleme est que je possede un tableau de caractere et un tableau de chaine de caractere :
    ici mon tableau de chaine de caracteres :
    char * paragraphes[] = {
    "P",
    "LI",
    "BR",
    "TR",
    "H1",
    "H2",
    "H3",
    "H4",
    "H5",
    "H6",
    "H7",
    NULL
    };

    et j obtient apres divers manipulation dans l'analyse de ma page un tableau comme celui ci

    tab[0] = 'B';
    tab[1] = 'R';
    tab[3] = '\0';

    celui ci est un tableau de caracteres

    ce que je veux c faire une comparaison entre mon tableau de chaine de caractere et celui de caractere ontenue.

    si l'om regarde bien mon tableau de caractere me donne comme chaine BR qui est bien contenue dans mon tableau de chaine de caracteres

    des lors ma comparaison entre mon tableau de caractere et mon tableau de chaine de caractere devrait me retourner un vrai.
    for(int i = 0; i < (a la longueur de mon tableau de paragraphe) ; i++)
    {
    int nb = strcmp(tab,paragraphes[i]);
    }

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Qu'est supposé être nb ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre habitué
    Inscrit en
    Février 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 11
    Par défaut
    nb represente le nombre retourne par ma comparaison avec strcmp

  7. #7
    Membre extrêmement actif

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Par défaut
    Citation Envoyé par ostie127 Voir le message
    des lors ma comparaison entre mon tableau de caractere et mon tableau de chaine de caractere devrait me retourner un vrai.
    for(int i = 0; i < (a la longueur de mon tableau de paragraphe) ; i++)
    {
    int nb = strcmp(tab,paragraphes[i]);
    }
    strcmp renvoi 0 lorsque 2 chaînes sont identiques.
    nb vaut donc 0 pour ton exemple "BR"

  8. #8
    Membre habitué
    Inscrit en
    Février 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 11
    Par défaut
    merci en faite cela marche c juste moi qui devait avoir la tete ailleur

    Merci pour vos aides

  9. #9
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Par défaut
    Citation Envoyé par ostie127 Voir le message
    et j obtient apres divers manipulation dans l'analyse de ma page un tableau comme celui ci

    tab[0] = 'B';
    tab[1] = 'R';
    tab[3] = '\0';

    celui ci est un tableau de caracteres
    Si tu construit ainsi ton tableau tab, il y a un souci, tab[2] n'est pas initialise et ne vaut donc pas forcement '\0'

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

Discussions similaires

  1. probleme de comparaison avec strcmp
    Par wolverine1987 dans le forum Visual C++
    Réponses: 20
    Dernier message: 18/06/2009, 11h48
  2. Problème de comparaison de fichiers
    Par peppena dans le forum Shell et commandes GNU
    Réponses: 10
    Dernier message: 30/05/2006, 19h41
  3. [VBS]probleme ds comparaison de nombres
    Par zorba49 dans le forum VBScript
    Réponses: 9
    Dernier message: 24/05/2006, 16h43
  4. Probleme sur fonction strcmp
    Par Invité dans le forum C
    Réponses: 8
    Dernier message: 10/01/2006, 00h02
  5. [Dates] Probleme de comparaison de date
    Par mathieu77186 dans le forum Langage
    Réponses: 4
    Dernier message: 22/12/2005, 17h21

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