Diviser un string en C++

Résolu/Fermé
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 - Modifié par prypiat_child le 21/12/2011 à 15:56
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 - 21 déc. 2011 à 16:34
Bonjour,

Tout est dans le titre... J'ai une variable de type "string" qui contient deux "float" séparés d'un espace (je sais, c'est bizarre mais c'est comme ca et je n'ai pas le choix^^):

std::string monString("41.26594 2.75916");


Dans mon code, je souhaite récupérer ces deux valeurs pour les stocker dans deux float....

float premierNombre = 41.26594;
float deuxiemeNombre = 2.75916;


comment puis-je faire ?

J'ai entendu parler de fonctions "left, right, mid et instr" qui semblent avoir un rapport avec mon problème, mais à vrai dire je ne vois ni dans quelle bibliothèque elles apparaissent, ni comment les utiliser.

Je code sous Windows XP, avec Code::Blocks. Je voudrais toutefois que le code soit portable sans modification (ou le minimum) sous Linux.

"Il siiiiigne a la pointe de son épééééée, d'un W qui veut dire WORROOOOOO !!!!"

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 297
21 déc. 2011 à 16:01
Salut.
CodeBlock n'est pas un compilateur, ensuite, il est disponible sous Linux, et la meilleur solution est d'utiliser la STL qui est portable.
Je pense que dans ce cas précis, le mieux est d'utiliser les sstream.
#include <sstream>
std::sstream ss;
ss.str(monString);
double a,b;
ss>>a>>b;
1
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 21/12/2011 à 16:12
Merci ! Je teste ca.

(Oui, j'aurais du préciser plutôt que j'utilise mingw au lieu de parler de Code::Blocks.
L'idéal est d'ailleurs que ca compile avec g++ sous linux, et non pas mingw).
0
prypiat_child Messages postés 1343 Date d'inscription vendredi 30 octobre 2009 Statut Membre Dernière intervention 10 avril 2014 272
Modifié par prypiat_child le 21/12/2011 à 16:35
Aucun souci. Merci beaucoup.

Je précise quand même que cela a fonctionné en mettant "stringstream" en lieu et place de "sstream".
0