In the C Programming Language, the strtoul feature converts a string to an unsigned long integer.
The strtoul feature skips all white-space characters at the opening of the string, converts the subsequent characters as phase of the number, and then stops when it encounters the first personality that is not a number.
Syntax
The syntax for the strtoul feature in the C Language is:
unsigned long int strtoul(const char *nptr, char **endptr, int base);
Parameters or Arguments
nptr A pointer to a string to convert to an unsigned long integer. endptr It is used by way of the strtoul characteristic to indicate where the conversion stopped. The strtoul function will regulate endptr (if endptr is now not a null pointer) so that endptr points to the first personality that was once no longer converted. base The base of the quantity being converted. If base is between 2 and 36, it is used as the radix of the number. If base is zero, the wide variety is assumed to be decimal unless the converted quantity begins with O (for Octal), Ox (for hex) or OX (for hex).
Returns
The strtoul feature returns the unsigned long integer representation of a string. The strtoul characteristic skips all white-space characters at the opening of the string, converts the subsequent characters as part of the number, and then stops when it encounters the first persona that is not a number.
If the strtoul function converts a fee that is too large or too small to convert, it will keep ERANGE in errono.
Required Header
In the C Language, the required header for the strtoul characteristic is:
#include <stdlib.h>
Applies To
In the C Language, the strtoul function can be used in the following versions:
ANSI/ISO 9899-1990
strtoul Example
Let’s appear at an instance to see how you would use the strtoul characteristic in a C program:
/* Example using strtoul by TechOnTheNet.com */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
int main(int argc, const char * argv[])
{
/* Define temporary variables */
char value[10];
char *eptr;
unsigned long result;
/* Copy a value into the variable */
/* It's okay to have whitespace before the number */
strcpy(value, " 234");
/* Convert the provided value to a decimal unsigned long */
result = strtoul(value, &eptr, 10);
/* If the result is 0, test for an error */
if (result == 0)
{
/* If a conversion error occurred, display a message and exit */
if (errno == EINVAL)
{
printf("Conversion error occurred: %d\n", errno);
exit(0);
}
/* If the value provided was out of range, display a warning message */
if (errno == ERANGE)
printf("The value provided was out of range\n");
}
/* Display the converted result */
printf("%lu decimal\n", result);
/* Copy a hexadecimal value into the variable */
strcpy(value, "0x5d9");
/* Convert the provided value to a hexadecimal unsigned long */
result = strtoul(value, &eptr, 16);
/* If the result is 0, test for an error */
if (result == 0)
{
/* If a conversion error occurred, display a message and exit */
if (errno == EINVAL)
{
printf("Conversion error occurred: %d\n", errno);
exit(0);
}
/* If the value provided was out of range, display a warning message */
if (errno == ERANGE)
printf("The value provided was out of range\n");
}
/* Display the converted result */
printf("%lx hexadecimal\n", result);
return 0;
}
When compiled and run, this software will output:
234 decimal
5d9 hexadecimal
Similar Functions
Other C functions that are similar to the strtoul function:
atoi feature atol characteristic strtod characteristic strtol characteristic
See Also
Other C features that are noteworthy when dealing with the strtoul function:
atof function <stdlib.h>
Leave a Review