rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Occurence caractere dans un txt en C

Sid, le jeudi 20 mars 2008 à 21:17:34
Bonjour, je cherche à écrire une fonction permettant d'obtenir l'occurrence d'un caractère dans un fichier txt.
J'ai 4 txt dans 4 langues différentes.
Voila ce que j'ai fait :

#include <stdio.h>

int occurenceLettre(char* lettre,char * langage)
{


char ligne[256];
FILE* f = fopen(strcat(langage,".txt"), "r" );


int occ=0;
int i;

if (f==NULL) {
printf("erreur ouverture\n");
return 1;
}
while (fgets( ligne, 256, f ) != NULL) {
for(i=0;i<256;i=i+1) {
if (strcmp(&ligne[i],lettre)) {
occ=occ+1; }
}
}




int fclose(FILE *f);
return occ;
}


Le compilateur ne trouve pas d'erreur mais ne compile pas non plus.

Merci pour votre aide.
Configuration: Windows Vista
Firefox 2.0.0.12
Répondre à Sid  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amigo, le jeudi 20 mars 2008 à 22:26:24
Bonjour,

Tu as écris la fonction occurenceLettre(), il te reste à écrire la fonction Main() qui appelle occurenceLettre() avec lettre et langage en arguments.

Salut.
Répondre à amigo

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sid, le jeudi 20 mars 2008 à 23:01:53
C'est deja fait :

int main(){
return occurenceLettre("l","dutch");
}


Mais le programme bug quand je lance la compilation.
Répondre à Sid

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sid, le vendredi 21 mars 2008 à 00:02:48
J'ai toujours pas de reponse.
J'arrive pas a faire passer la discussion en non résolu.
Répondre à Sid

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amigo, le vendredi 21 mars 2008 à 00:03:42
voila ta solution

#include <stdio.h>
#include <string.h>

int occurenceLettre( char*, char*);

int main()
{
int nl;
nl=occurenceLettre("L","c:\\toto");
printf("nombre de lettres L : %d\n",nl);
getch();
return 0;
}




int occurenceLettre(char* lettre,char * langage)
{


char ligne[256];
char fich [256];
FILE* f;
int occ=0;
int i,l;
strcpy(fich,"");
strcat(fich,langage);
strcat(fich,".txt");
/*printf("%s\ %s \n",fich,lettre);*/
f = fopen(fich, "r" );
if (f==NULL) {
printf("erreur ouverture\n");
fclose(f);
return 0;
}
while (fgets( ligne, 256, f ) != NULL) {
l=strlen(ligne);
for(i=0;i<l;i++) {
/*printf("%c %c %d\n", ligne[i],lettre[0],occ);*/
if (ligne[i]==lettre[0]) {
occ=occ+1; }
}
}

close(f);
return occ;
}
Répondre à amigo

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sid, le vendredi 21 mars 2008 à 00:18:19
Ça ne marche toujours pas.
Le programme retourne 0 quelque soit la lettre ou le langage.
Je pense que le problème est au niveau de la comparaison
if (ligne[i]==lettre[0])

Avec strcmp le prog rend 3759 a tous les coups.

Merci.
Répondre à Sid

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
amigo, le vendredi 21 mars 2008 à 00:21:29
Je t'assure que chez moi ça fonctionne

prend un fichier de quelques lignes , enlève les commentaires et observe ce qui se passe au niveau de la comparaison

A+
Répondre à amigo

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Sid, le vendredi 21 mars 2008 à 00:25:30
C'est bon!
Merci encore.
Répondre à Sid

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 gaga, le vendredi 22 août 2008 à 00:47:54
moi il marchait avant,mais maintenant il met que des 0 et erreur d'ouverture,ca peut etre du a koi??
Répondre à gaga
Logiciels pertinents trouvés dans les téléchargements
Télécharger Type it Easy 1.5Type it Easy - Lors de la saisie d'un texte, parfois on doit utiliser des caractères particuliers ou caractères spéciaux. Ces caractères ne...Catégorie: Optimisation
Licence: Freeware/gratuit
Télécharger Some Txt to PDF Converter 1.4Some Txt to PDF Converter - Les documents PDF sont les formats les plus sur et les plus stables pour les transferts électroniques, puisqu'ils ne peuvent...Catégorie: PDF
Licence: Freeware/gratuit
Télécharger CartaGoGo 3.0.6CartaGoGo - Vous aimez les cartes de visites et les étiquettes ? Vous trouvez que les logiciels du commerce sont trop lourds à gérer ?...Catégorie: Emploi/CV
Licence: Freeware/gratuit
Télécharger Cool player 219Cool player - Coolplayer est un lecteur audio libre possédant les caractéristiques suivantes : Sous licence GNU GPL Skinnable ...Catégorie: Lecteurs audio
Licence: Open Source
Plus de logiciels gratuits sur « Occurence caractere dans un txt en C »