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");
}

Commentaires (0)

Connectez-vous pour commenter

Rejoignez la discussion et partagez vos connaissances avec la communauté

Chargement des commentaires...