Scroll to navigation

std::atoi,std::atol,std::atoll(3) C++ Standard Libary std::atoi,std::atol,std::atoll(3)

NAME

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

Synopsis


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

// Run this code


#include <cstdlib>
#include <iostream>


int main()
{
const auto data = {
"42",
"3.14159",
"31337 with words",
"words and 2",
"-012345",
"10000000000"
};


for (const char* s : data) {
const int i {std::atoi(s)};
std::cout << "std::atoi('" << s << "') is " << i << '\n';
if (const long long ll {std::atoll(s)}; i != ll) {
std::cout << "std::atoll('" << s << "') is " << ll << '\n';
}
}
}

Possible 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
std::atoi('10000000000') is 1410065408
std::atoll('10000000000') is 10000000000

See also


stoi
stol
stoll converts a string to a signed integer
(C++11) (function)
(C++11)
(C++11)
stoul
stoull converts a string to an unsigned integer
(C++11) (function)
(C++11)
strtol converts a byte string to an integer value
strtoll (function)
(C++11)
strtoul converts a byte string to an unsigned integer value
strtoull (function)
(C++11)
strtoimax
strtoumax converts a byte string to std::intmax_t or std::uintmax_t
(C++11) (function)
(C++11)
from_chars converts a character sequence to an integer or floating-point value
(C++17) (function)

2022.07.31 http://cppreference.com