[C] extraire les mots voisin
stroumpf
Messages postés
292
Statut
Membre
-
stroumpf Messages postés 292 Statut Membre -
stroumpf Messages postés 292 Statut Membre -
Bonjour,
bonsoir
voilà jai fait une fonction qui extrait les 2mots voisinS:
voila : j'ai du texte ::
bonjour les amis .
bonsoir ma famille .
voila le resultat :
bonjour les
les amis
amis bonsoir
bonsoir ma
ma famille
or c'est faux
j'aime extraire les mots voisin qui ont sur le meme ligne c'est à dire voila le resultat attendu :
bonjour les
les amis
bonsoir ma
ma famille
voila la fonction d'extraction :
bonsoir
voilà jai fait une fonction qui extrait les 2mots voisinS:
voila : j'ai du texte ::
bonjour les amis .
bonsoir ma famille .
voila le resultat :
bonjour les
les amis
amis bonsoir
bonsoir ma
ma famille
or c'est faux
j'aime extraire les mots voisin qui ont sur le meme ligne c'est à dire voila le resultat attendu :
bonjour les
les amis
bonsoir ma
ma famille
voila la fonction d'extraction :
Code : C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 char* get_word(FILE *fdesc, char *buff, size_t size)
{
char *ret=NULL;
if( fdesc!=NULL && buff!=NULL && size>0 )
{
int c;
int i=0;
while( ret==NULL && i<size && (c=fgetc(fdesc))!=EOF )
{
if( isalpha(c) )
{
buff[i]=c;
i++;
}
else if( i>0 )
{ /* mot */
buff[i]='\0';
ret=buff;
}
}
}
return ret;
}
j'attends vos reponses
merci
bonsoir
voilà jai fait une fonction qui extrait les 2mots voisinS:
voila : j'ai du texte ::
bonjour les amis .
bonsoir ma famille .
voila le resultat :
bonjour les
les amis
amis bonsoir
bonsoir ma
ma famille
or c'est faux
j'aime extraire les mots voisin qui ont sur le meme ligne c'est à dire voila le resultat attendu :
bonjour les
les amis
bonsoir ma
ma famille
voila la fonction d'extraction :
char* get_word(FILE *fdesc, char *buff, size_t size)
{
char *ret=NULL;
if( fdesc!=NULL && buff!=NULL && size>0 )
{
int c;
int i=0;
while( ret==NULL && i<size && (c=fgetc(fdesc))!=EOF )
{
if( isalpha(c) )
{
buff[i]=c;
i++;
}
else if( i>0 )
{ /* mot */
buff[i]='\0';
ret=buff;
}
}
}
return ret;
}
bonsoir
voilà jai fait une fonction qui extrait les 2mots voisinS:
voila : j'ai du texte ::
bonjour les amis .
bonsoir ma famille .
voila le resultat :
bonjour les
les amis
amis bonsoir
bonsoir ma
ma famille
or c'est faux
j'aime extraire les mots voisin qui ont sur le meme ligne c'est à dire voila le resultat attendu :
bonjour les
les amis
bonsoir ma
ma famille
voila la fonction d'extraction :
Code : C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 char* get_word(FILE *fdesc, char *buff, size_t size)
{
char *ret=NULL;
if( fdesc!=NULL && buff!=NULL && size>0 )
{
int c;
int i=0;
while( ret==NULL && i<size && (c=fgetc(fdesc))!=EOF )
{
if( isalpha(c) )
{
buff[i]=c;
i++;
}
else if( i>0 )
{ /* mot */
buff[i]='\0';
ret=buff;
}
}
}
return ret;
}
j'attends vos reponses
merci
Configuration: Windows Vista Internet Explorer 7.0
2 réponses
-
Il faut utiliser juste getline (première boucle, qui extrait les lignes une par une) et strtok (boucle imbriquée à l'intérieur, qui extrait les mots un par un).
http://man.developpez.com/man3/getline.3.php
http://man.developpez.com/man3/strtok.3.php
Attention à la gestion des pontuations (en fait dans strtok, ton séparateur est une ponctuation ou un espace ou une tabulation)
Bonne chance -
Ben lis le man et cherches deux trois exemples sur le Net tu vas voir c'est facile.