Extraire une chaine en C

Alexandra -  
 Alexandra -
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.
A voir également:

3 réponses

ben
 
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 ");
}
}
5
Alexandra
 
Merci beaucoup Ben
Mon boulot a avancé
0
ben
 
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
0
ben
 
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
0