[C++] chargement mot à mot de string

bolivier75 Messages postés 1 Date d'inscription   Statut Membre Dernière intervention   -  
 Guy Niolo -
Bonjour,
Je voudrais charger les éléments d'un texte dans un tableau
exemple du type de texte :

premier
deuxieme troisieme quatrieme
cinquieme sixieme septieme
...

J'ai dans un premier temps essayé caractère par caractère avec get, mais au final il serait bien que je puisse les charger mot par mot avec un format string
par exemple string tab[200] et mettre dans tab[0] premier, dans tab [1] deuxieme etc.
J'ai aussi pensé utilisé la fonction getline, mais je n'y arrive pas.
Est ce que quelqu'un pourrait m'expliquer comment faire

Merci d'avance
A voir également:

4 réponses

jostem
 
En C, tu as la fonction STRTOK.
Cherches des exemples d'utilisation de cette fonction sur le net, ça devrait traiter ton problème.
0
red12mi
 
Bonjour,

je vous propose la solution suivante que je travaille avec couramment :


cette solution consiste à utiliser la classe assistante 'helper class' qui s'appelle CStringParser, vous pouez la télécharger depuis ce lien : https://www.codeproject.com/Articles/1059/Yet-another-string-parser

N.B : c'est pas la pienne d'utiliser tous le project, il suffit d'utiliser les deux fichiers suivants "StringParser.cpp" et "StringParser.h"

- créer une instance de cette classes en passant le séparateur entre les chaîne (espace, dans votre cas),
- récupérer un tableau de mots on passant le texte à 'spliter' dans la fonction Parse(texte) que fournie la classe CStrign Parser
0
bolivier75
 
merci à vous deux. Je vais regarder ce que tu m'as envoyé red21 et essayer d'adapter ca à mon programme
0
Guy Niolo
 
En tant que débutant du C++ confronté au meme probleme que toi, j'ai été assez bourrin :
char **Explode(char *Chaine, char Separateur=" ");

//fonction qui casse une string en mots (char**) que tu récupères par exemple ainsi :

char ** kikoulol = Explode (Mon_string);

(tu crée une fonction pour avoir la taille d'un char ** )

for (int i = 0; i< taille(kikoulol); i++){
cout<<kikoulol[i]<<endl;
}


(Tu peux trouver des tas d'exemple d'une telle fonction Explode sur le net^^)
Puis si tu veux absolument des string t'as juste à convertir.
0