Partage
  • Partager sur Facebook
  • Partager sur Twitter

Chaînes de caractères

déterminer la position d'un caractère

    15 octobre 2019 à 17:40:58

    Bonjour,

    Quelle fonction permet de déterminer la position d'un caractère dans une chaîne? Le code suivant ne permet pas d'afficher les lettres trouvées dans un jeu du pendu (par ex **E*E).

    int main()
    {
        char MotSecret[] = "BLEUE";
        char Reponse[5] = {0};
        int i=0;
        int L=0;
        int *Ptest = NULL;
        char lettre = NULL;
        L=strlen(MotSecret);

        printf("Lettre : ");
        scanf("%c", &lettre);

         for(i=0;i<L;i++)
        {
        Ptest = strchr(MotSecret, lettre);
           if(Ptest != NULL)
           {
            Reponse[i]= lettre;
            }
            else
            {
           Reponse[i] = '*';
            }
        printf("%c", Reponse[i]);
        }
        return 0;
    }

    • Partager sur Facebook
    • Partager sur Twitter
      15 octobre 2019 à 17:52:58

      Hello,

      1) je suis sur que tu entres 'e' et pas  'E'

      2) strchr() n'est pas la fonction dont tu as besoin dans ce cas-ci. Compare plutot MotSecret[i] avec lettre

      3) Ptest n'est pas du bon type: ce devrait être un char *

      4) l'initialisation de lettre devrait être: lettre=0;

      5) pour poster du code, utilise le bouton </> de l'éditeur du site

      -
      Edité par edgarjacobs 15 octobre 2019 à 17:58:12

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        15 octobre 2019 à 22:07:29

        Bonjour,

        Il manque un char au tableau Reponse pour pouvoir contenir la chaine "BLEUE".

        Au début, il faut que le tableau Reponse soit entièrement remplit avec "*****".

        • Partager sur Facebook
        • Partager sur Twitter
          15 octobre 2019 à 23:51:45

          Marc Mongenet a écrit:

          Bonjour,

          Il manque un char au tableau Reponse pour pouvoir contenir la chaine "BLEUE".

          Au début, il faut que le tableau Reponse soit entièrement remplit avec "*****".

          Pour cette fois, pas d'accord avec toi (*). À la manière dont Reponse est affiché, il n'y a pas besoin de \0, et le programme n'emploie aucune fonction qui nécéssite que Reponse se termine par \0

          (*) enfin, si, mais Reponse ne va pas contenir la chaine "BLEUE", juste les caractères 'B' 'L' 'E' 'U' 'E' (ou '*' '*' 'E' '*' 'E' dans l'exemple donné)

          -
          Edité par edgarjacobs 15 octobre 2019 à 23:56:56

          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

            16 octobre 2019 à 15:29:07

            Merci pour vos conseils.

            Je vais tester ces éléments.

            • Partager sur Facebook
            • Partager sur Twitter

            Chaînes de caractères

            × 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