strtol function — Converts a string to a long integer
long int strtol(const char* str, char** end, int base)
The strtol
function
converts a character array to a long integer. The string str
is divided into three parts: optional
whitespace, the text of the integer value, and a trailing part,
which starts with the first character that cannot be part of an
integer. The first part is skipped, and the second part is converted
to a long integer. If the second part is empty, 0
is returned. If end
is not null, *end
is assigned a pointer to the start of
the third part of str
. If the
third part is empty, *end
points
to the terminating null character.
If base
is 0
, the base is determined from the prefix
of the integer text: a leading 0x
or 0X
means hexadecimal, a
leading 0
means octal, and
anything else is decimal. Otherwise, base
must be between 2 and 36, in which
the letters a
-z
(of either case) represent digits with
values of 10-35. Only letters that are appropriate for the base are
permitted, that is, the corresponding digit value must be less than
the base.
If the resulting value is too large or too small to fit in a
long
int
, the value LONG_MAX
or LONG_MIN
is returned, and errno
is set to ERANGE
.