Don't like ads? PRO users don't see any ads ;-)
Guest

N7 C TP04 1INFO INH

By: a guest on May 2nd, 2012  |  syntax: C  |  size: 2.31 KB  |  hits: 27  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define NB_MOTS_DICO 30
  5. #define LG_MOT_MAX 30   //On est pas en allemand : 30 suffit
  6. #define LG_LIG_MAX 1024
  7.  
  8.  
  9.  
  10. int main( int argc, char **args){
  11.  
  12. if(argc != 3){ printf("Utilisation : ./ortho_check CHEMIN_dico.txt CHEMIN_Texte.txt"); return 0;}
  13.        
  14.  
  15. //-------------------- VARIABLES ET INITIALISATION ------------------------
  16.  
  17.         int continuer =1;
  18.         char *res;
  19.         char *sep = ";.,? ():!\t\n";   
  20.         char ligne[LG_LIG_MAX]; //La ligne lue;
  21.         char dico[NB_MOTS_DICO][LG_MOT_MAX]; //Le dictionnaire en mémoire
  22.  
  23. //Dictionnaire
  24.         FILE *fichier = NULL;
  25.         fichier = fopen(args[1], "r");
  26.         printf("Ouverture du dictionnaire... \n");     
  27.  
  28.         //On vérifie l'ouverture du fichier
  29.         if (!fichier){ printf ("Impossible d'ouvrir le fichier dictionnaire...\n"); return 1;}
  30.        
  31.         //Remplissage du dico
  32.         //  /!\ Le fichier dico doit être proprement construit
  33.  
  34.         printf("Remplissage du dictionnaire...\n");    
  35.  
  36.         int i = 0;
  37.         while(fgets ( dico[i],LG_MOT_MAX, fichier) != NULL && i < NB_MOTS_DICO){
  38.                 dico[i][ (strlen(dico[i]) -1)] = 0; //On élimine le \n a la fin du mot du dico
  39.                 i++;   
  40.                 printf("%d ",i);
  41.         }      
  42.         // Fin de remplissage du dico
  43.  
  44.         if( fclose(fichier) ){printf ("Impossible de fermer le fichier dictionnaire...\n"); return 1;}
  45.  
  46. //Ouverture du fichier texte
  47.         fichier = fopen(args[2], "r");
  48.         printf("\nOuverture du fichier texte...\n");
  49.         //On vérifie l'ouverture du fichier
  50.         if (!fichier){ printf ("Impossible d'ouvrir le fichier texte...\n"); return 1;}
  51.  
  52. //-------------------------------- PARCOURS DU FICHIER ET AFFICHAGE DES MOTS ERRONES -------------------------
  53.        
  54.        
  55.         printf("Affichage des mots errones...\n");
  56.        
  57.         while (fgets(ligne, LG_LIG_MAX, fichier) != NULL) //Tant qu'il n'y a pas d'erreur de lecture du fichier source
  58.         {
  59.                 //Lecture du premier mot de la ligne
  60.                 res = strtok(ligne, sep);
  61.                         while(res != NULL){ //Tant que un token est trouve
  62.                                 //printf("test du mot : %s\n", res);
  63.                                 //On vérifie si res n'est pas contenu dans le dico
  64.                                 i=0;
  65.                                 continuer = 1;
  66.                                 while(continuer){ //Tant que le mot se trouve plus loin dans le dico
  67.                                         if (strcmp(res, dico[i]) < 0){printf("%s \n", res); continuer = 0;}
  68.                                         if (strcmp(res, dico[i]) == 0)
  69.                                         continuer = 0;
  70.                                         i++;
  71.                                         }
  72.                                 res = strtok(NULL, sep);
  73.                                
  74.                         }
  75.         }
  76.  
  77.         printf("Finit\n");
  78.         return 0;
  79. }