Diviser un string en C++
Résolu
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^^):
Dans mon code, je souhaite récupérer ces deux valeurs pour les stocker dans deux float....
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 !!!!"
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
-
ContributeurSalut.
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;