[C++] chargement mot à mot de string
bolivier75
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
Guy Niolo -
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
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:
- [C++] chargement mot à mot de string
- Trousseau mot de passe iphone - Guide
- Mot de passe - Guide
- Mot de passe administrateur - Guide
- Mot de passe bios perdu - Guide
- Voir mot de passe wifi android - Guide
4 réponses
En C, tu as la fonction STRTOK.
Cherches des exemples d'utilisation de cette fonction sur le net, ça devrait traiter ton problème.
Cherches des exemples d'utilisation de cette fonction sur le net, ça devrait traiter ton problème.
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
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
merci à vous deux. Je vais regarder ce que tu m'as envoyé red21 et essayer d'adapter ca à mon programme
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.
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.