Partage
  • Partager sur Facebook
  • Partager sur Twitter

occurences des mots d'un un texte

    11 mai 2019 à 16:54:00

    Bonjour,

    Pour mon cours de programmation je dois écrire un programme qui donne le nombre d'occurrence des mots  et écrire les occurrences des mots  dans l'ordre alphabétique. J'ai déjà écrit ce programme qui calcul le nombre d'occurrence d'un mot mais je ne sais pas comment le faire dans une phrase. de plus lors de la compilation il renvoie "segmention fault (core dumped)".

    Merci d'avance pour votre aide 

    #include <stdlib.h> 
    #include <stdio.h>
    #include <string.h>

    int occurence (char*chaine, char caractere[]){
        int i;
        int j=0;
        int nb_occ =0;
        caractere[j]='a';
        for (i=0;chaine[i]!='\0';i++){
                if (strcmp (chaine[i],caractere[j])){
                i++;
                nb_occ++;
                printf ("nombre d'occurence: %i",& nb_occ);
            }
            else{
                j++;
            }
        }
    }
    int main(){
        char*texte;
        char caractere;
        printf ("entrez une suite de mot en terminant par -\n");
        scanf ("%ms",&texte);
       
       occurence (texte, caractere);
      
        return 0;
    }

    -
    Edité par isa^31 11 mai 2019 à 16:58:48

    • Partager sur Facebook
    • Partager sur Twitter
      12 mai 2019 à 2:41:10

      Hello,

      Tu es sûr de toi qu'il renvoie "segmentation fault" lors de la compilation ?

      Pour savoir où se trouve la segmentation fault tu peux utiliser un débogueur - quel environnement de développement utilises tu ?

      • Partager sur Facebook
      • Partager sur Twitter
        12 mai 2019 à 9:57:25

        Bonjour,

        A la compilation, des messages d'avertissement doivent te mettre sur la piste des problèmes à résoudre.

        PS: Et "occurrence" s'écrit avec 2 'r'.

        -
        Edité par Marc Mongenet 12 mai 2019 à 9:57:53

        • Partager sur Facebook
        • Partager sur Twitter
          12 mai 2019 à 14:47:39

          salut,

          Oui il renvoie bien  "segmentation fault"  et j'utilise online GDB qui ne me donne aucune erreur à part "segmentation fault".

          Déso pour la faute d'orthographe je change ça direct dans mon programme merci. 

          Marc Mongenet a écrit:

          Bonjour,

          A la compilation, des messages d'avertissement doivent te mettre sur la piste des problèmes à résoudre.

          PS: Et "occurrence" s'écrit avec 2 'r'.

          -
          Edité par Marc Mongenet il y a environ 4 heures

          potterman28wxcv a écrit:

          Hello,

          Tu es sûr de toi qu'il renvoie "segmentation fault" lors de la compilation ?

          Pour savoir où se trouve la segmentation fault tu peux utiliser un débogueur - quel environnement de développement utilises tu ?



          -
          Edité par isa^31 12 mai 2019 à 14:53:35

          • Partager sur Facebook
          • Partager sur Twitter
            12 mai 2019 à 15:24:27

            GDB ne va pas te donner les erreurs tout seul - c'est un utilitaire qui va te permettre d'aller à des endroits précis dans ton programme et te donner un contrôle quasi total : tu peux alors exécuter instruction par instruction, printer les valeurs des variables à tout moment, afficher la pile d'appel, etc.. Mais c'est toi qui va commander GDB de faire telle ou telle chose

            En l'occurence, avec GDB tu peux faire d'abord "run" pour lancer ton programme - puis, une fois qu'il y a eu le segmentation fault, tu fais "backtrace" pour avoir la pile d'appel.

            Ce PDF indique les commandes les plus importantes de GDB

            https://darkdust.net/files/GDB%20Cheat%20Sheet.pdf

            -
            Edité par potterman28wxcv 12 mai 2019 à 15:24:52

            • Partager sur Facebook
            • Partager sur Twitter
              12 mai 2019 à 18:32:40

              Bonjour isa^31

              Voici ce que donne une compilation de ton code:

              isa3.c: Dans la fonction « occurence »:
              isa3.c:11:31: warning: le passage de l'argument 1 de « strcmp » transforme un entier en pointeur sans transtypage [-Wint-conversion]
                           if (strcmp (chaine[i],caractere[j])){
                                       ~~~~~~^~~
              In file included from isa3.c:3:
              /usr/include/string.h:136:32: note: « const char * » attendu mais l'argument est de type « char »
               extern int strcmp (const char *__s1, const char *__s2)
                                  ~~~~~~~~~~~~^~~~
              isa3.c:11:44: warning: le passage de l'argument 2 de « strcmp » transforme un entier en pointeur sans transtypage [-Wint-conversion]
                           if (strcmp (chaine[i],caractere[j])){
                                                 ~~~~~~~~~^~~
              In file included from isa3.c:3:
              /usr/include/string.h:136:50: note: « const char * » attendu mais l'argument est de type « char »
               extern int strcmp (const char *__s1, const char *__s2)
                                                    ~~~~~~~~~~~~^~~~
              isa3.c: Dans la fonction « main »:
              isa3.c:27:22: warning: le passage de l'argument 2 de « occurence » transforme un entier en pointeur sans transtypage [-Wint-conversion]
                  occurence (texte, caractere);
                                    ^~~~~~~~~
              isa3.c:5:34: note: « char * » attendu mais l'argument est de type « char »
               int occurence (char*chaine, char caractere[]){
                                           ~~~~~^~~~~~~~~~~
              

              Ces avertissements ne sont pas gratuits, ils soulignent de graves bugs.

              • Partager sur Facebook
              • Partager sur Twitter

              occurences des mots d'un un texte

              × 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