The strtol function recognizes strings in various formats,
depending on the value of the base. This function ignores
any leading white-space characters (as defined by isspace in
<ctype.h>) in the given string. It recognizes an optional plus
or minus sign, then a sequence of digits or letters that may
represent an integer constant according to the value of the base.
The first unrecognized character ends the conversion.
Leading zeros after the optional sign are ignored, and 0x or 0X
is ignored if the base is 16.
If base is 0, the sequence of characters is interpreted by
the same rules used to interpret an integer constant: after
the optional sign, a leading 0 indicates octal conversion, a
leading 0x or 0X indicates hexadecimal conversion, and any other
combination of leading characters indicates decimal conversion.
Truncation from long to int can take place after assignment or
by an explicit cast (arithmetic exceptions not withstanding).
The function call atol (str) is equivalent to strtol (str,
(char**)NULL, 10).