Partage
  • Partager sur Facebook
  • Partager sur Twitter

Compteur de caractère dans une chaine

Sujet résolu
    20 mars 2022 à 17:36:46

    Bonjour,
    J'étais en train de travailler sur mon code pour compter le nombre de caractères dans une chaine saisie par un utilisateur sauf qu'à chaque fois que j'exécute mon programme il me donne toujours un chiffre supérieur de 1 par rapport au nombre exact de caractères saisie par l'utilisateur et je ne comprends pas pourquoi merci d'avance voici mon code :
    #include "TP4.h"
    #define TMAX 100
    void exo1()
    {
    int compteur = 0;
    char chaine_caractere[TMAX];
    printf("Saisir une phrase :");
    fgets(chaine_caractere,TMAX,stdin);
    for(int i = 0; chaine_caractere[i] != '\0'; i++)
    compteur++;
    printf("Votre phrase contient %d caracteres.",compteur);
    }
    • Partager sur Facebook
    • Partager sur Twitter
      20 mars 2022 à 18:00:28

      Hello,

      Lorsque tu termines la saisie, tu appuies sur return (ou enter), et fgets() (man) met ce caractère ('\n') dans la variable d'entrée. Le nombre de caractères calculé par ton programme est donc bien correct. Si tu veux supprimer le '\n', c'est simple:

      #include <string.h>
      
      char *bn=strchr(str,'\n');
      if(bn)
          *bn='\0';

      -
      Edité par edgarjacobs 20 mars 2022 à 18:01:42

      • 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

      Compteur de caractère dans une chaine

      × 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