Rechercher : dans
Par :

Extraire une chaine en C

Dernière réponse le 24 jui 2002 à 14:53:32 Alexandra, le 24 jui 2002 à 10:42:51 
 Signaler ce message aux modérateurs

Bonjour,
J'ai un fichier texte de ce type :
R=2506;2506;2506;2506;2506;2506;2506;2523;2523;2506;
J'aimerai savoir comment faire pour extraire ce qu'il y a entre les points virgule.
C'est à dire pouvoir stocker 2506 dans une variable et ainsi de suite.
Merci.

Meilleures réponses pour « Extraire une chaine en C » dans :
Liste simplement chaînée VoirLISTES SIMPLEMENT CHAINÉES Requis I. INTRODUCTION II. Définition III. La construction du prototype d'un élément de la liste IV. Opérations sur les listes chaînées A. Initialisation B. Insertion d'un élément dans la liste 1. Insertion...
Langage C - Les chaînes de caractères VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C, une chaîne...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...

1

ben, le 24 jui 2002 à 10:52:07

Il faut tout d'abord que tu lise la ligne dans ton fichier et que tu la stoch dans un tableau, il existe ensuite une fonction a laquelle tu peux préciser le separateur (ici ;) et tu peux ainsi récuperer tes differente valeur. Le probleme c'est que il va te falloir autant de variable que de valeur à moins de faire du dynamique (malloc). Le pb c'est que je me souvien pas exactement du om de cette fonction je crois qu'il y a tok dans le nom du style strtok mais j'en suis pas sur je vais rechercher.

ben

Répondre à ben

2

ben, le 24 jui 2002 à 10:56:45

C'est bon c'est bien sa voila la syntaxe exacte:
char *strtok(char *s, const char *delim);
tu mets comme 1er champ ta chaine de caractere puis en deuxieme ton separateur, elle te retourne une chaine allant jusqu'a ton separateur. Il faut mettre cette fonction dans une boucle a fin de récuperer tes elements un par un .

ben

Répondre à ben

3

ben, le 24 jui 2002 à 11:00:10

Voici un petit exemple trés sympas qui repondra parfaitement à ton problème:

char *strtok(char *s, const char *delim);
Cette fonction découpe une chaîne en sous-chaînes en focntion d'un ensemble de délimiteurs. La fonctin est initialiser en passant la chaîne à décomposer en premier paramètre, elle retourne alors le premier champ. Pour récuperer les autres champs il faut appeler strtok() avec NULL comme premier paramètre. Quand il n'y a plus de champs dans la chaîne la fonction retourne NULL.

Exemple :

#include

int main(int argc, char*argv[]){
char chaine[]="GET http://machine/fichier HTTP/1.0";
char *champ;

champ = strtok(chaine, "\t ");
while(champ!=NULL){
printf("%s\n",champ);
champ = strtok(NULL, "\t ");
}
}

Répondre à ben

4

 Alexandra, le 24 jui 2002 à 14:53:32

Merci beaucoup Ben
Mon boulot a avancé

Répondre à Alexandra
Collection CommentÇaMarche.net