Search code examples
c++parsing

How to parse a string to an int in C++?


What's the C++ way of parsing a string (given as char *) into an int? Robust and clear error handling is a plus (instead of returning zero).


Solution

  • In the new C++11 there are functions for that: stoi, stol, stoll, stoul and so on.

    int myNr = std::stoi(myString);
    

    It will throw an exception on conversion error.

    Even these new functions still have the same issue as noted by Dan: they will happily convert the string "11x" to integer "11".

    See more: http://en.cppreference.com/w/cpp/string/basic_string/stol