std::atoi, std::atol, std::atoll

From cppreference.com
< cpp‎ | string‎ | byte
Defined in header <cstdlib>
int       atoi( const char *str );
long      atol( const char *str );
long long atoll( const char *str );
(since C++11)

Interprets an integer value in a byte string pointed to by str.

Discards any whitespace characters until the first non-whitespace character is found, then takes as many characters as possible to form a valid integer number representation and converts them to an integer value. The valid integer value consists of the following parts:

  • (optional) plus or minus sign
  • numeric digits

Parameters

str - pointer to the null-terminated byte string to be interpreted

Return value

Integer value corresponding to the contents of str on success.

If no conversion can be performed, 0 is returned.

If the value of the result cannot be represented, i.e. the converted value falls out of range of the corresponding return type, behavior is undefined.

Example

#include <cstdlib>
#include <iostream>
#include <iterator>
#include <numeric>
 
int main()
{
    const char *str1 = "42";
    const char *str2 = "3.14159";
    const char *str3 = "31337 with words";
    const char *str4 = "words and 2";
 
    char str5[8] = "-";
    std::iota(std::begin(str5) + 1, std::end(str5) - 1, '0');
    *(std::end(str5) - 1) = '\0';
 
    const int num1 = std::atoi(str1);
    const int num2 = std::atoi(str2);
    const int num3 = std::atoi(str3);
    const int num4 = std::atoi(str4);
    const int num5 = std::atoi(str5);
 
    std::cout << "std::atoi(\"" << str1 << "\") is " << num1 << '\n';
    std::cout << "std::atoi(\"" << str2 << "\") is " << num2 << '\n';
    std::cout << "std::atoi(\"" << str3 << "\") is " << num3 << '\n';
    std::cout << "std::atoi(\"" << str4 << "\") is " << num4 << '\n';
    std::cout << "std::atoi(\"" << str5 << "\") is " << num5 << '\n';
}

Output:

std::atoi("42") is 42
std::atoi("3.14159") is 3
std::atoi("31337 with words") is 31337
std::atoi("words and 2") is 0
std::atoi("-012345") is -12345

See also

(C++11)(C++11)(C++11)
converts a string to a signed integer
(function)
(C++11)(C++11)
converts a string to an unsigned integer
(function)
converts a byte string to an integer value
(function)
converts a byte string to an unsigned integer value
(function)
(C++11)(C++11)
converts a byte string to std::intmax_t or std::uintmax_t
(function)
converts a character sequence to an integer or floating-point value
(function)