c++stringtype-conversioninteger

How to convert int to string in C++?


How can I convert from int to the equivalent string in C++? I am aware of two methods. Is there another way?

(1)

int a = 10;
char *intStr = itoa(a);
string str = string(intStr);

(2)

int a = 10;
stringstream ss;
ss << a;
string str = ss.str();

Solution

  • C++11 introduces std::stoi (and variants for each numeric type) and std::to_string, the counterparts of the C atoi and itoa but expressed in term of std::string.

    #include <string> 
    
    std::string s = std::to_string(42);
    

    is therefore the shortest way I can think of. You can even omit naming the type, using the auto keyword:

    auto s = std::to_string(42);
    

    Note: see [string.conversions] (21.5 in n3242)