226 votes

Conversion d'un int en chaîne std : :

Quel est le moyen le plus court, de préférence inline-able, pour convertir un int en chaîne ? Les réponses utilisant stl et Boost seront les bienvenues.

470voto

Yochai Timmer Points 19802

Vous pouvez utiliser std : :to_string dans C++11

int i = 3;
std::string str = std::to_string(i);

49voto

Benoit Points 35553
#include <sstream>
#include <string>
const int i = 3;
std::ostringstream s;
s << i;
const std::string i_as_string(s.str());

39voto

neuro Points 6590

Eh bien, la façon bien connue (avant C++11) de le faire est d'utiliser l'opérateur de flux :

#include <sstream>

std::ostringstream s;
int i;

s << i;

std::string converted(s.str());

Bien sûr, vous pouvez le généraliser pour n'importe quel type à l'aide d'une fonction de modèle ^^

#include <sstream>

template<typename T>
std::string toString(const T& value)
{
    std::ostringstream oss;
    oss << value;
    return oss.str();
}

37voto

ltjax Points 11115

boost::lexical_cast<std::string>(yourint) de boost/lexical_cast.hpp

Le travail est pour tout avec le support std : :ostream, mais n'est pas aussi rapide que, par exemple, itoa

Il semble même être plus rapide que stringstream ou scanf :

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X