Extraire une chaine en C
Alexandra
-
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.
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:
- Sous chaine en c
- Chaine tnt gratuite sur mobile - Guide
- Chaine radio - Télécharger - Médias et Actualité
- Plus de chaine tv - Guide
- Chaine musique bouygues - Accueil - Guide TV et vidéo
- L'équipe live foot chaine - Accueil - TV & Vidéo
3 réponses
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 ");
}
}
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 ");
}
}
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
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
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
Mon boulot a avancé