[C] extraire les mots voisin

Fermé
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 - 23 sept. 2008 à 21:18
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 - 24 sept. 2008 à 00:05
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 :
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

2 réponses

mamiemando Messages postés 33344 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 novembre 2024 7 803
24 sept. 2008 à 00:00
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
-1
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 2
24 sept. 2008 à 00:03
merci Mamiemando, comment utiliser getline ?
tu peux m'aider un peu plus svp
sera gentil de ta part
merci
-1
mamiemando Messages postés 33344 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 7 novembre 2024 7 803
24 sept. 2008 à 00:04
Ben lis le man et cherches deux trois exemples sur le Net tu vas voir c'est facile.
-1
stroumpf Messages postés 289 Date d'inscription mardi 17 juin 2008 Statut Membre Dernière intervention 1 mars 2009 2
24 sept. 2008 à 00:05
merci :)
-1