strtol, strtoll
Defined in header <stdlib.h>
|
||
long strtol( const char *str, char **str_end, int base );
|
||
long long strtoll( const char *str, char **str_end, int base );
|
(since C99) | |
Interprets an integer value in a byte 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:
- (optional) plus or minus sign
- (optional) prefix (0) indicating octal base (applies only when the base is 8)
- (optional) prefix (0x or 0X) indicating hexadecimal base (applies only when the base is 16)
- a sequence of digits
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 byte 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
This section is incomplete Reason: no example |
[edit] See also
converts a byte string to an integer value (function) |
|
converts a byte string to an unsigned integer value (function) |