strtoul(), strtoull()
Convert a string into an unsigned long integer
Synopsis:
#include <stdlib.h>
unsigned long int strtoul( const char * ptr,
char ** endptr,
int base );
unsigned long long strtoull( const char * ptr,
char ** endptr,
int base );
Arguments:
- ptr
- A pointer to the string to parse.
- endptr
- If this argument isn't NULL, the function stores in it a pointer to the first unrecognized character found in the string.
- base
- The base of the number being parsed:
- If base is zero, the first characters after the optional sign
determine the base used for the conversion.
If the first characters are
0x
or0X
the digits are treated as hexadecimal. If the first character is 0, the digits are treated as octal. Otherwise, the digits are treated as decimal. - If base isn't zero, it must have a value between 2 and 36.
The letters a–z and A–Z represent the values 10 through 35.
Only those letters whose designated values are less than base
are permitted.
If the value of base is 16, the characters
0x
or0X
may optionally precede the sequence of letters and digits.
- If base is zero, the first characters after the optional sign
determine the base used for the conversion.
If the first characters are
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The strtoul() function converts the string pointed to by ptr to an unsigned long; strtoull() converts the string pointed to by ptr to an unsigned long long.
These functions recognize strings that contain the following:
- optional white space
- an optional plus or minus sign
- a sequence of digits and letters
If the string input is a negative number, both strtoul() and strtoull() convert the string pointed to by ptr to an unsigned long or unsigned long long respectively. Negative numbers start from ULONG_MAX or ULLONG_MAX, depending on the function, and count down based on the string pointed to and the selected base.
The conversion ends at the first unrecognized character. A pointer to that character is stored in the object endptr points to, if endptr isn't NULL.
Returns:
The converted value.
If the correct value causes an overflow, the returned value is ULONG_MAX or
ULLONG_MAX, depending on the function, and errno is set to ERANGE. If
base is out of range, or the conversion can't be made, the function
returns zero and sets errno to EINVAL
.
Examples:
#include <stdlib.h>
int main( void )
{
unsigned long int v;
v = strtoul( "12345678", NULL, 10 );
return EXIT_SUCCESS;
}
Classification:
Safety: | |
---|---|
Cancellation point | No |
Signal handler | Yes |
Thread | Yes |