Partage
  • Partager sur Facebook
  • Partager sur Twitter

Comparer deux chaine de Char

non je ne veut pas utiliser strcmp :p

    17 mai 2006 à 21:27:35

    Bonjour les ZérOs!

    Alors voila dans le cadre de mes études "supérieur" (:x), je doit réaliser une fonction (donc ne me dite pas "strcmp éxiste", na rien à foutre ^^ ) qui compare deux chaines de char.
    Sachant que je doit suivre la norme internationale qui dits : 0 =>identique 1=>Supérieur -1=>inférieurs.

    Bon alors voici ce que je voulais faire :

    1) Le prgramme initialise une boucle qui tournera un nombre (i) de foix équivalent au nombre de caractère (fixe dans l'éxo) de la chaine.
    2) je test les chaine en les décomposant
    if (chaine1[i] == chaine2[i])

    3) Si c'est pareil je continue, si c'est différents je sors, et on continue
    4) une fois sortit de la boucle je test le nombre de tours réalisée par celle ci :
    - si elle est égale au nombre de caractére de la chaine je renvoie 0
    - sinon je vois quel caractére et supérieur est je renvoie en fonction.

    Mais là ou j'ai un pb c'est : comment savoir quelle lettre et supérieur à l'autre?
    Donc voila si quelqu'un pouvais me repondre ^^ (et aussi me soumettre des critiques et améliorations possibles sur ma fonction :) )

    Marki d'avance!

    Mayeutik
    • Partager sur Facebook
    • Partager sur Twitter
      17 mai 2006 à 21:39:35

      Citation : Mayeutik


      Mais là ou j'ai un pb c'est : comment savoir quelle lettre et supérieur à l'autre?



      Comment ça "une lettre supériur ou inférieur l'autre"??? o_O
      • Partager sur Facebook
      • Partager sur Twitter
        17 mai 2006 à 21:42:46

        tout simplement en faisant un:

        if (chaine1[i] > chaine2[i])
            return 1;
        if (chaine1[i] < chaine2[i])
            return -1;

        • Partager sur Facebook
        • Partager sur Twitter
          17 mai 2006 à 21:44:09

          Et bien une comparaison repose sur la supériorité d'un élément sur l'autre, voir à son égalité. La fonction strcmp repose sur ce principe, mais justement je voulais savoir comment elle considérait une lettre supérieur ou inférieur (l'ordre alphabétique est un système de classement des lettres en hierarchie, il attribut donc une "supériorité" de certaine lettre face à d'autre)

          Mais aprés avoir posé ma question j'ai pensé au code ASCII des caractère, il retrenscrit les lettres en chiffres non? Donc si je traduit une lettre par son code ASCII je pourrai donc déduire laquelle se trouve devant l'autre dans l'alphabet ^^

          Je vais voir ça ^^ Faut juste que je trouve comment lui dire de prendre le char sous orme ASCII, c'est pas en mettant le char entre '' comme 'a'?

          edit : Mouhahah réponse quasiment simultanée ^^

          drexil : a oui pas bête... faut que j'arrête de penser à des solutions complexe pour un truc tout con moi...

          seb13 : j'y est pensé juste aprés avoir posté^^
          • Partager sur Facebook
          • Partager sur Twitter
            17 mai 2006 à 21:48:20

            Tu peut essayer de faire un cast sur une variable de type char:
            int a;
            char b;
            a = (int)b;

            Mais je n'est pas esayé donc je ne sais pas si ça marche
            • Partager sur Facebook
            • Partager sur Twitter
              17 mai 2006 à 21:50:21

              je vais voir ^^
              Et sinon question subsidiaire, si je mets un break dans un if qui est dans un for il arréte le for ?? o_O

              Edit : aprés reflexions : oui. ^^ enfin je pense vu que sa "dits" : si "ça" alors tu t'arréte, donc il arréte la boucle ^^

              Edit 2: et un return ça l'arréte la boulce?? o_O

              Edit 3 : Mouhahaah je me fait "bip" pour rien depuis tout à l'heure... Je regarde le corriger du prof, et, que vois-je? Une magnifique utilisation de strcmp... Bon voila quoi ^^
              • Partager sur Facebook
              • Partager sur Twitter

              Comparer deux chaine de Char

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown