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