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 59 60 61
|
Adr_Tableau_Asci=(struct Noeud*)malloc(sizeof(struct Noeud*));
if (fich==NULL)
perror("imp");
else
{
do
{
Caractere = fgetc(fich); // On lit le caractère
printf("%c", Caractere); // On l'affiche
Taille++;
Calcul_Occurence_Caractere(Caractere,&Adr_Tableau_Asci,Taille);
} while (Caractere!= EOF); // On continue tant que fgetc n'a pas retourné EOF (fin de fichier)
}
fclose(fich);
getchar();
return 0;
}
void Calcul_Occurence_Caractere(char Caractere, struct Noeud **Tableau_Asci ,int Taille)
{
int test;
struct Noeud * Element_Tableau;
struct Noeud **Tableau;
test=Recherche_Caractere_TASCI(Caractere,&Tableau_Asci,Taille);
printf(" donner test %d\n ",test);
if (test==-1)
{
Element_Tableau=malloc(sizeof(struct Noeud));
Element_Tableau->lettre=Caractere;
Element_Tableau->occurence=1;
Tableau_Asci=realloc(Tableau_Asci,Taille+1*sizeof(struct Noeud*));
}
else
{
Tableau_Asci[test]->occurence++;
}
}
int Recherche_Caractere_TASCI(char Caractere, struct Noeud **Tableau_Asci ,int Taille )
{
int i;
for(i=0;i<Taille;i++)
if(Tableau_Asci[i]->lettre==Caractere)
{
return i;
break;
}
return -1;
} |
Partager