std::strtol, std::strtoll

From Cppreference

Jump to: navigation, search
Defined in header <cstdlib>

long      strtol( const char *str, char **str_end, int base );

long long strtoll( const char *str, char **str_end, int base );
(C++11 feature)

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

Function discards any whitespace characters until first non-whitespace character is found. Then it takes as many characters as possible to form a valid base-n (where n=base) integer number representation and converts them to an integer value. The valid integer value consists of the following parts:

The set of valid digits for base-2 integer is 01, for base-3 integer is 012, and so on. For bases larger than 10, valid digits include alphabetic characters, starting from Aa for base-11 integer, to Zz for base-36 integer. The case of the characters is ignored.

The functions sets the pointer pointed to by str_end to point to the character past the last character interpreted. If str_end is NULL, it is ignored.

Contents

[edit] Parameters

str - pointer to the null-terminated character string to be interpreted
str_end - pointer to a pointer to character.
base - base of the interpreted integer value

[edit] Return value

integer value corresponding to the contents of str on success. If the converted value falls out of range of corresponding return type, range error occurs and LONG_MAX, LONG_MIN, LLONG_MAX or LLONG_MIN is returned. If no conversion can be performed, 0 is returned.

[edit] Example

[edit] See also

atoi
atol
atoll
converts a character string to an integer value
(function)
strtoul
strtoull
converts a character string to an unsigned integer value
(function)