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 :

compter des caractères


Sujet :

C

  1. #1
    Membre actif
    Homme Profil pro
    visiteur
    Inscrit en
    Décembre 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : visiteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 21
    Par défaut compter des caractères
    Bonjour

    j'ai commencé à faire un programme qui compte le nombre de caractère dans une phrase car on vient d'apprendre comment manipuler la bibliothèque "string.h"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
     
    int main()
    {
      char phrase1[100]="jaime bien ma phrase";
     
      printf("%d",strlen(phrase1));
     
      return EXIT_SUCCESS;
    }
    j'aimerai maintenant qui compte les mots mais je n'arrive pas à voir comment, une boucle for sans doute mais je suis un peu bloqué, pouvez vous m'aider svp
    merci

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Bonjour.

    Si l'exercice premier n'est que d'utiliser les fonctions de la bibliothèque string.h alors strlen (); est effectivement faite pour toi.

    Pour compter les mots, tu peux par exemple utiliser la fonction strstr (); qui va te permettre de compter le nombre d’occurrences d'une expression dans une chaîne de caractères.

  3. #3
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 765
    Par défaut
    Hello,

    Comme tu es débutant, je ne vais pas faire compliqué.

    Tu ajoutes un compteur, nbr_words par exemple, et, comme tu l'as suggéré, tu parcours ton tableau avec une boucle for, qui s'arrête quand le caractère testé vaut \0. Et à chaque fois que tu rencontres un espace (il y a d'autres caractères qui séparent les mots, mais restons simples), tu viens de trouver un mot et donc tu incrémentte nbr_words. Attention qu'en sortie de boucle, le denier mot n'a pas été compté.

  4. #4
    Membre actif
    Homme Profil pro
    visiteur
    Inscrit en
    Décembre 2019
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : visiteur
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2019
    Messages : 21
    Par défaut
    bonjour,
    j'ai déjà fait en cour cette méthode mais je cherche maintenant à le refaire avec "string.h" qui sera peut être beaucoup plus court et simple.

    par rapport au "strstr()" je cherche à compter le nombre de mots dans la phrase mais merci quand même je garde ça en tête

    merci

  5. #5
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Justement, si tu comptes le nombre d'espace tu auras le nombre de mots en correspondance il me semble . Dans ton exemple le nombre de mots est égale au nombre d'espaces +1.

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    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 393
    Par défaut
    Après, ça devient plus compliqué une fois qu'on considère que des mots peuvent être séparés de plusieurs espaces, puis lorsqu'on décide de considérer la ponctuation comme des espaces... Auquel point on s'oriente plus sur strspn() et strcspn()...
    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.

  7. #7
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    765
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 765
    Par défaut
    Oui, nettement plus compliqué: l'apprenti, deux mots, aujourd'hui un seul. abat-jour un mot, peut-être deux mots. Avec des espaces qui peuvent apparaître n'importe où (bon, là, c'est vrai, il faudrait un dictionnaire)

Discussions similaires

  1. [XL-2013] Rechercher et compter des occurences de chaines de caractère
    Par breizho35 dans le forum Macros et VBA Excel
    Réponses: 40
    Dernier message: 23/04/2018, 16h51
  2. Compter des caractères dans une chaîne de caracteres
    Par sg025 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 27/12/2016, 13h59
  3. [XL-2003] Compter des chaînes de caractères
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/11/2013, 15h44
  4. Réponses: 5
    Dernier message: 21/01/2007, 00h43
  5. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51

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