1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
   |  
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define DELIMITERS    " \r\n\t!@#$%^&*()_+={}|\\:\"'?¿/.,<>¡;º×÷"
 
main()
{
     int nbrLignes = 0;
     FILE * fichier = NULL;
     char * buffer = (char *) calloc(10 ,sizeof(char));
     char temp[10] = "";
 
     if((fichier = fopen("test.txt", "w")) != NULL )
     {
        fputs("le@test;a\nreussi!",fichier);
        fclose(fichier);
     }
 
     if((fichier = fopen("test.txt", "r")) != NULL)
     {
         /* Chargement du fichier en memoire */
         while(fgets(temp, 10, fichier) != NULL)
         {
            nbrLignes++;
            buffer = (char *) realloc(buffer, 10 * nbrLignes * sizeof(char));
            strcat(buffer, temp);
         }
         int nbrMots = 0;
         char ** T_MOTS = (char **) malloc(sizeof(char*));
 
         /* Decoupage de la chaine en mots */
         printf("%s\n",buffer);
         char * token = strtok(buffer, DELIMITERS);
         while(token != NULL)
         {
              nbrMots++;
              T_MOTS = (char **) realloc(T_MOTS, nbrMots * sizeof(char *));
              T_MOTS[nbrMots] = (char *) malloc(28 * sizeof(char));
              strcpy(T_MOTS[nbrMots],token);
              printf("%s\n",T_MOTS[nbrMots]);
              token = strtok(NULL, DELIMITERS);
         }
         int i;
          for(i = 0 ;i < nbrMots - 1;i ++)
            {
                printf("%s\n",T_MOTS[i]);;
            }
         fclose(fichier);
     }
     return 0;
} | 
Partager