Extraire les mot en C

Fermé
cyrina - 28 mai 2008 à 20:56
Ipsec Messages postés 11 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 juin 2008 - 29 mai 2008 à 02:19
Bonjour,
je suis entrain de faire un programme qui a pour but de chargre le contenu du fichier texte dans une liste chaine.
MOn probleleme ou je me bloque : je veux savoir comment extraire les mots dans chaque ligne.
merci
je compte sur vous
A voir également:

3 réponses

jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
28 mai 2008 à 22:13
salut,

tu connais les fscanf ?
0
kuragari Messages postés 12 Date d'inscription samedi 10 mai 2008 Statut Membre Dernière intervention 28 mai 2008 1
28 mai 2008 à 22:51
Bonjours,

un mot peut se definir par : une suite de caractere séparée par des separateurs tel que les esapces ou les tabulations

donc une fois que tu as ta ligne, tu peut par exemple la parcourir et tu la coupe a l'endroit ou il y a un separateur, assure toi d'avoir nettoyer ta chaine avant (par exemple mettre un seul espace s'il y en a plusieurs, de meme pour les tabulations)

c'est grossomodo assez simple à fair en code, si tu maitrise la recursivite c'est meme faisable en une fonction d'une vingtaine ou une trentaine de ligne, sinon pense bien a decouper ton code :)
0
Ipsec Messages postés 11 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 juin 2008 1
29 mai 2008 à 02:19
Bon personnellement je te conseillerai de tenter avec un fscanf, mais bon il y a une fonction en C qui fait tout le boulot(enfin dés que tu as recupéré le contenu de ton fichier ou d'une ligne de ton fichier dans un char *): strtok (http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strtok.3.html).

#include <string.h>
char *strtok (char *s, const char *delim);


Apres c'est une fonction a utiliser avec parcimonie, car elle modifie directement ta chaine de départ(enfin si jme souvient bien) et elle n'est pas compatible avec du multi-thread.

Extrait du man:
Bogues
évitez au maximum d'utiliser cette fonction. Sinon, prenez note des informations suivantes :

    Cette fonction modifie son premier argument.

    Les caractères de séparation sont surchargés, leur identité est donc perdue.

    Cette fonction ne doit pas être invoquée sur une chaîne constante.

    La fonction strtok() utilise un buffer statique et n'est donc pas sûre dans un contexte multithread. Dans ce cas il vaut mieux utiliser strtok_r(). 
0