Fréquence d'une chaîne de caractères dans un fichier en C

Ce programme en langage C compte le nombre d'occurrences dans un fichier texte de tous les caractères recherchés.

Exemple:
Fichier texte contient le texte "je suis un programmeur".


Les caractères recherchés : j, s, p, e.
Le nombre d'occurrences :
    j : 1
    s : 1
    u : 3
    e : 2

 
#include <stdio.h>
#include <stdlib.h>

void rech_caracteres(char caracteres[],int taille)
{
//ouvrir un fichier en mode lecture
FILE *fichier = fopen("C:/test.txt","r");
char c;
//tableau qui sauvegarde les répétitions
int repetition[taille];
//initialiser à 0
for(int i = 0 ; i < taille; i++)
repetition[i]=0;
//si le fichier existe
if(fichier)
{
//tant que c'est pas la fin du fichier
//lire un caractère
while((c=(char)getc(fichier))!=EOF)
{
//Le caractère lu est comparer avec
//tous les caractères recherchés
for(int i = 0 ; i < taille; i++)
{
//s'il est égale on incrémente
//le compteur associé au caractère
if(c==caracteres[i])
repetition[i]++;
}
}
//fermer le fichier
fclose(fichier);
//affichage
printf("Nombre de repetitions:\n");
for(int i = 0 ; i < taille; i++)
printf("\t%c : %d\n",caracteres[i],repetition[i]);
}
else
printf("\aERREUR: impossible d'ouvrir le fichier : %s", fichier);
}

int main()
{
char chaine[]="un programmeur";
// sizeof(chaine)-1 : taille du tableau
// (-1 pour ne pas compter le '\0')
// '\0' indique la fin du tableau
rech_caracteres(chaine,sizeof(chaine)-1);
system("pause");
}