Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

help plz : débutant

4 réponses
Avatar
Sanjiv SOOTEEHALL
Est ce qu'il existe une fonction en c ou c++ qui permet de faire un split
d'une chaîne de caractères en fonction du délimiteur choisi?
Peut on le faire avec sscanf?

Ex :
char chaine1[10],char chaine2[10];
char toto[50] = "donnee1 donnee2";
sscanf(toto,"%s %s",chaine1,chaine2);

Est ce qu'il est possible de délimiter avec un séparateur autre que
l'espace dans la fonction sscanf?
Merci d'avance !

4 réponses

Avatar
Arnaud Meurgues
Sanjiv SOOTEEHALL wrote:
Est ce qu'il existe une fonction en c ou c++ qui permet de faire un split
d'une chaîne de caractères en fonction du délimiteur choisi?


En C ou en C++ ? La réponse n'a rien à voir.

En C++, on utilisera std::string et son interface (substr, find).
En C, on utilisera plutôt strtok.

Arnaud

Avatar
Dominique Baldo
Arnaud Meurgues nous disait
Sanjiv SOOTEEHALL wrote:
Est ce qu'il existe une fonction en c ou c++ qui permet de faire un split
d'une chaîne de caractères en fonction du délimiteur choisi?


En C, on utilisera plutôt strtok.


ou strsep qui existe dans certaines librairies et qui a l'avantage
d'être réentrant et de traiter correctement les champs vides


Avatar
Christophe Lephay
"Dominique Baldo" a écrit dans le message de
news:
Arnaud Meurgues nous disait
Sanjiv SOOTEEHALL wrote:
Est ce qu'il existe une fonction en c ou c++ qui permet de faire un
split



d'une chaîne de caractères en fonction du délimiteur choisi?


En C, on utilisera plutôt strtok.


ou strsep qui existe dans certaines librairies et qui a l'avantage
d'être réentrant et de traiter correctement les champs vides


On peut utiliser getline en C++, qui permet de spécifier le délimiteur...

Chris



Avatar
kanze
Arnaud Meurgues wrote in message
news:...
Sanjiv SOOTEEHALL wrote:
Est ce qu'il existe une fonction en c ou c++ qui permet de faire un
split d'une chaîne de caractères en fonction du délimiteur choisi?


En C ou en C++ ? La réponse n'a rien à voir.

En C++, on utilisera std::string et son interface (substr, find).
En C, on utilisera plutôt strtok.


D'abord, même en C, on n'utilise pas strtok -- c'est comme gets ou
sprintf : une erreur garantie à la longue.

En C++, on écrirait plutôt une classe, comme mes « FieldArray »
(disponible à www.gabi-soft.fr), qui utilise un délégué pour définir
comment découper une chaîne en champs. (Il existe deux délégués tout
faits : un qui découpe sur des espaces blancs, et l'autre sur un
caractère fixe. Dans le temps, j'en avais aussi un qui découpait selon
une expression rationnelle, mais puisque je veux passer à la classe
Boost pour les expressions rationnelles, il a disparu, en attendant que
je trouve du temps.)

--
James Kanze GABI Software mailto:
Conseils en informatique orientée objet/ http://www.gabi-soft.fr
Beratung in objektorientierter Datenverarbeitung
11 rue de Rambouillet, 78460 Chevreuse, France, +33 (0)1 30 23 45 16