function
<cstdlib>
strtoul
unsigned long int strtoul (const char* str, char** endptr, int base);
Convert string to unsigned long integer
Parses the C-string str, interpreting its content as an integral number of the specified base, which is returned as an value of type unsigned long int
.
This function operates like strtol to interpret the string, but produces numbers of type unsigned long int
(see strtol for details on the interpretation process).
Parameters
- str
- C-string containing the representation of an integral number.
- endptr
- Reference to an object of type
char*
, whose value is set by the function to the next character in str after the numerical value.
This parameter can also be a null pointer, in which case it is not used.
- base
- Numerical base (radix) that determines the valid characters and their interpretation.
If this is 0
, the base used is determined by the format in the sequence (see strtol for details).
Return Value
On success, the function returns the converted integral number as an unsigned long int
value.
If no valid conversion could be performed, a zero value is returned.
If the value read is out of the range of representable values by an unsigned long int
, the function returns ULONG_MAX (defined in <climits>), and errno is set to ERANGE.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
/* strtoul example */
#include <stdio.h> /* printf, NULL */
#include <stdlib.h> /* strtoul */
int main ()
{
char buffer [256];
unsigned long ul;
printf ("Enter an unsigned number: ");
fgets (buffer, 256, stdin);
ul = strtoul (buffer, NULL, 0);
printf ("Value entered: %lu. Its double: %lu\n",ul,ul*2);
return 0;
}
|
Possible output:
Enter an unsigned number: 30003
Value entered: 30003. Its double: 60006
|
For an example with the endptr parameter in action see strtol.
Data races
The array pointed by str is accessed, and the pointer pointed by endptr is modified (if not null).
Exceptions (C++)
No-throw guarantee: this function never throws exceptions.
If str does not point to a valid C-string, or if endptr does not point to a valid pointer object, it causes undefined behavior.
See also
- atol
- Convert string to long integer (function
)
- strtol
- Convert string to long integer (function
)
- strtod
- Convert string to double (function
)