Partage
  • Partager sur Facebook
  • Partager sur Twitter

pendu: creation du dictionnaire automatiquement

    12 juin 2006 à 22:13:28

    Ce code permet de creer un dictionnaire de mots a parir d'un fichier contenant un texte.
    Il ya a 2 mode: manuel pour decider pour chaque mot si on dois lajouteret automatique pour ajouter tt les mots dun coup.

    Les accents et " ne sont pas geres.


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

    int exist(char mot[], char file[]);
    int nouveau_mot(char lettre);
    int write( char mot[] , char file[]);


    int main() {
    char texte[1000];
    int min;
    char mot[100]="";
    int i=0;
    int k=0;
    int rep=0;
    char file_name[20];
    int MODE;
    char charac;
    char dico[20];
    FILE* fichier_to_read = NULL;
    printf("Nom du fichier a lire: \n");
    scanf("%s",file_name);
    printf("Nombre min de caracteres du mot: \n");
    scanf("%d",&min);
    printf("Nom du dictionnaire: \n");
    scanf("%s",dico);
    printf("mode: \n [1]manuel \n [0]automatique\n");
    scanf("%d",&MODE);
    fichier_to_read = fopen(file_name, "r");
       if (fichier_to_read != NULL) {
          while ( (charac = fgetc(fichier_to_read)) != EOF) {
          charac = fgetc(fichier_to_read);
             if(nouveau_mot(charac)){ // nouveau mot
                if(strlen(mot)>min && !exist(mot, dico)){
                printf("%s %d\n",__FILE__,__LINE__);
                   if(MODE){
                   rep=0;
                   printf("%s",mot);
                   printf("[1]: ajouter ce mot au dictionnaire\n");
                   printf("[0]: ne pas ajouter ce mot au dictionnaire\n");
                   scanf("%d",&rep);
                   printf("%s %d\n",__FILE__,__LINE__);
                   } else {
                   rep=1;
                   }
                printf("%s %d\n",__FILE__,__LINE__);
                   if(rep==1){
                   write(mot,dico);
                   }
                }
            k=0;
            memset(mot, 0, sizeof (mot));
            }else{
            mot[k]=toupper(charac);
            k++;
            }
        }  // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
        fclose(fichier_to_read);
        }else{
        printf("Ce fichier n existe pas\n");
        exit(0);
        }
    }


    int exist(char mot[], char file[]){
    FILE* fichier = NULL;
    char chaine[20];
    fichier = fopen(file , "r");
    int result=0;
        if (fichier == NULL) {
        printf("Impossible d'ouvrir le fichier %s", file);
        exit(0);
        }
    rewind(fichier);
        while (fgets(chaine, 20, fichier) != NULL) {
        memset(chaine+strlen(chaine)-1,0,1); // detruit le retour chariot a la fin du mot
            if(!strcmp(chaine,mot)){
            result=1;
            }
        }
    fclose(fichier);
    return result;
    }



    int write( char mot[] , char file[]){
    FILE* fichier = NULL;
    char chaine[20];
    fichier = fopen(file , "a");
    int i;
        if (fichier != NULL)    {
        fprintf(fichier, "%s\n", mot);
        } else {
        printf("Impossible d'ouvrir le fichier %s", file);
        }
    fclose(fichier);
    return 1;
    }

    int nouveau_mot(char lettre){
    char separator[]=" .,?!-';\"()";
    int result=0;
    int i;
        for(i=0;i<strlen(separator);i++){
            if(lettre==separator[i]){
            result=1;
            }
        }
    return result;
    }
       


    Citation : texte (exemple)a placer dans un fichier

    Jacqueline "Jackie" Joyner-Kersee was born March 3,1962 in East St. Louis, Illinois, to a family that sometimes lacked material possessions "but always had love." She was also blessed with a talent, a supportive family and a quiet yet unshakable belief in herself. That foundation lead Joyner-Kersee to become a high school basketball and track star, and eventually lead to a scholarship in basketball to the University of California Los Angeles (UCLA). There she earned a B.A. in history, while also distinguishing herself in the sport of track and field, dominating the long jump and heptathlon.

    • Partager sur Facebook
    • Partager sur Twitter
      13 juin 2006 à 11:15:41

      Citation : marilyn91

      ...


      C'était vraiment très intéressant...
      • Partager sur Facebook
      • Partager sur Twitter
      Music only !
        13 juin 2006 à 12:21:11

        :(
        javais poster un code mais j ai trouvait ma faute alors ne voulant pas poster un code mauvais jai supprimer celui-ci mais je ne sais pas comment carement supprimer le topic ( ce que jaurais du faire ).

        Je posterai le bon code ce soir.

        dsl
        • Partager sur Facebook
        • Partager sur Twitter
          15 juin 2006 à 10:13:15

          J'aurais voulus savoir comment fonctionne les accents en C et comment indiquer " comme separateur sachant que la liste des separateurs est

          Citation : code

          char separator[]=" .,?!-';\"()";



          Pour l'indentation, mot code etait indenter mais au copier colle les tab n'ont pas ete pris en compte :(

          • Partager sur Facebook
          • Partager sur Twitter
            15 juin 2006 à 10:59:23

            C'est parceque t'a utilisé la balise <citation> et pas la balise <code> C'est tout!
            • Partager sur Facebook
            • Partager sur Twitter
              15 juin 2006 à 11:01:10

              C'est parce que tu as utilisé <citation nom="code"> à la place de <code type="c">
              • Partager sur Facebook
              • Partager sur Twitter

              pendu: creation du dictionnaire automatiquement

              × 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