Converting an uint64 to string in C++

Bilthon picture Bilthon · Jun 24, 2010 · Viewed 26.6k times · Source

What's the easiest way to convert an uint64 value into a standart C++ string? I checked out the assign methods from the string and could find no one that accepts an uint64 (8 bytes) as argument.

How can I do this?

Thanks

Answer

Frunsi picture Frunsi · Jun 24, 2010

The standard way:

std::string uint64_to_string( uint64 value ) {
    std::ostringstream os;
    os << value;
    return os.str();
}

If you need an optimized method, then you may use this one:

void uint64_to_string( uint64 value, std::string& result ) {
    result.clear();
    result.reserve( 20 ); // max. 20 digits possible
    uint64 q = value;
    do {
        result += "0123456789"[ q % 10 ];
        q /= 10;
    } while ( q );
    std::reverse( result.begin(), result.end() );
}