Sve@r | Mickey1664 a écrit :
Bjr, je dois faire un programme en C: malheueusement, j ai quelques lacunes... :>
Pouvez-vous me dire comment faire cette fonction:
Nombre_occurence(...,...)
Creer une fct Nombre_occurence(...,...) qui lit un fichier (passé en 1er parametre) et renvoie le nombre d'occurence de chaque caractères du fichier dans le tableau passé en 2ème parametre.
J'ai déjà bien cherché de mon coté. L'algo n est pas un probleme, mais le code oui, donc je recherche juste quelqu un pouvant m aider un peu plus que le minimum...
|
La fonction "fopen()" te permet d'ouvrir un fichier. Tu y passes le nom du fichier en premier paramètre et en 2° tu mets "r" car tu ne désires l'ouvrir que pour le lire. Cette fonction te renvoie un pointeur de type "FILE *" qui te servira ensuite de référence pour les fonctions d'accès au fichier.
La fonction "fgetc()" te permet d'extraire un caractère du fichier. Tu y passes en paramètre le pointeur que t'a renvoyé "fopen()". Comme ce pointeur possède en interne différents éléments dont entre autre la position courante, chaque fois que tu appelles "fgetc()" tu récupères le caractère suivant. Quand tu as tout lu, la fonction renvoie "-1"
Une fois le fichier traité, tu le fermes avec "fclose()". Cela permet au système de libérer les ressources allouées par "fopen()"
Avec ça, t'as déjà tout pour faire ta fonction. Si tu t'en sors bien, tu peux remplacer "fgetc()" qui ne lit qu'un seul caractère à la fois par "fread()" qui peut t'en lire "n" ("n" à ta convenance mais < 32767) qu'elle stockera dans un tableau de caractères (dont l'allocation est à ta charge).
Le seul truc que je ne saisis pas trop, c'est que ta fonction reçoit en paramètre un tableau de caractères dont elle doit compter les occurences (style "abc" donc elle doit compter combien de "a", combien de "b" et combien de "c" ) mais il n'y a rien d'indiqué sur ce qu'elle doit faire de tous ces nombres. Elle ne peut pas les renvoyer car une fonction ne peut renvoyer qu'une seule valeur. Donc doit-elle juste "afficher" à l'écran chaque nombre sans rien renvoyer, doit-elle stocker chaque valeur dans un tableau de nombres qu'elle renverra ensuite, ou bien alors elle reçoit en paramètre un 3° tableau vide qu'elle doit remplir elle-même ??? |