unsigned long int strtoul(const char *str
The string pointed to by the argument str is converted to
an unsigned long integer (type
unsigned long int).
Any initial whitespace characters are skipped (space, tab,
carriage return, new line, vertical tab, or formfeed). The
number may consist of an optional sign and a string of digits.
Conversion stops when the first unrecognized character is
If the base (radix) argument is zero, then the
conversion is dependent on the first two characters. If the
first character is a digit from 1 to 9, then it is base 10. If
the first digit is a zero and the second digit is a digit from 1
to 7, then it is base 8 (octal). If the first digit is a zero
and the second character is an x or X, then it is base 16
If the base argument is from 2 to 36, then that base
(radix) is used and any characters that fall outside of that
base definition are considered unconvertible. For base 11 to 36,
the characters A to Z (or a to z) are used. If the base
is 16, then the characters 0x or 0X may precede the number.
The argument endptr is a pointer to a pointer. The
address of the character that stopped the scan is stored in the
pointer that endptr points to.
On success the converted number is returned. If no conversion
can be made, zero is returned. If the value is out of the range
of the type
unsigned long int, then
ULONG_MAX is returned and
is stored in the variable