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 54 55 56 57 58
| int main(void)
{
FILE *fdesc=fopen(FNAME,"r");
Liste **TableHash;
(Liste **) malloc (TAILLEHASH * sizeof(Liste *));
char buffer[BUFFSIZE];
int nb_read=0;
char buff[BUFFSIZE];
char prec[BUFFSIZE];
char mot_res[BUFFSIZE*2];
int i=0;
int num_ligne=0;
if (fdesc!= NULL)
{
if( get_word(fdesc,prec,BUFFSIZE) )
{
while( get_word(fdesc, buff, BUFFSIZE) )
{
num_ligne++; // ici je vais mettre la valeur du numero de ligne
printf("%s %s\n",prec,buff);
sprintf(mot_res, "%s %s", buff, prec);
insere_table(TableHash, mot_res, num_ligne); //ici on insere dans la table de hachage le mot resulatant et son numero de ligne où il se trouve
strncpy( prec,buff,BUFFSIZE);
}
}
printf("%d", num_ligne);
}
dump_table(TableHash);
free(TableHash);
return 0;
}
char* get_word(FILE *fdesc, char *buff, size_t size)
{
char *ret=NULL;
if( fdesc!=NULL && buff!=NULL && size>0 )
{
int c;
int i=0;
while( ret==NULL && i<size && (c=fgetc(fdesc))!=EOF )
{
if( isalpha(c) )
{
buff[i]=c;
i++;
}
else if( i>0 )
{ /* mot */
buff[i]='\0';
ret=buff;
}
}
}
return ret;
} |
Partager