Occurence caractere dans un txt en C
Résolu
Sid
-
gaga -
gaga -
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.
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.
A voir également:
- Occurence caractere dans un txt en C
- Caractère ascii - Guide
- Caractère spéciaux - Guide
- Caractere speciaux - Guide
- Caractere vide - Guide
- Caractere speciaux mac - Guide
8 réponses
Bonjour,
Tu as écris la fonction occurenceLettre(), il te reste à écrire la fonction Main() qui appelle occurenceLettre() avec lettre et langage en arguments.
Salut.
Tu as écris la fonction occurenceLettre(), il te reste à écrire la fonction Main() qui appelle occurenceLettre() avec lettre et langage en arguments.
Salut.
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;
}
#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;
}
C'est deja fait :
int main(){
return occurenceLettre("l","dutch");
}
Mais le programme bug quand je lance la compilation.
int main(){
return occurenceLettre("l","dutch");
}
Mais le programme bug quand je lance la compilation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Ç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.
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.