If you are using C++11
, you should probably use stoi
because it can distinguish between an error and parsing "0"
.
try {
int number = std::stoi("1234abc");
} catch (std::exception const &e) {
// This could not be parsed into a number so an exception is thrown.
// atoi() would return 0, which is less helpful if it could be a valid value.
}
It should be noted that "1234abc" is implicitly converted from a char[]
to a std:string
before being passed to stoi()
.