Do you know that? 77% of freelancers are OPTIMISTIC about their business prospects next

How can I convert a string to a number?

The standard C library provides several functions for converting strings to numbers of all formats (integers,
longs, floats, and so on) and vice versa. One of these functions, atoi(), is used here to illustrate how a string
is converted to an integer:

#include <stdio.h>
#include <stdlib.h>
void main(void);
{
     int num;
     char* str = "100";
     num = atoi(str);
     printf("The string 'str' is %s and the number 'num' is %d.\n",
                 str, num);
}

To use the atoi() function, you simply pass it the string containing the number you want to convert. The
return value from the atoi() function is the converted integer value.

The following functions can be used to convert strings to numbers:

 Function Name Purpose
 atof()-Converts a string to a double-precision floating-point value.
 atoi()-Converts a string to an integer.
 atol()-Converts a string to a long integer.
 strtod()-Converts a string to a double-precision floating-point value and reports any "leftover" numbers that could not be converted.
 strtol()-Converts a string to a long integer and reports any "leftover" numbers that could not be converted.
 strtoul()-Converts a string to an unsigned long integer and reports any "leftover" numbers that could not be converted.

Sometimes, you might want to trap overflow errors that can occur when converting a string to a number that
results in an overflow condition. The following program shows an example of the  strtoul() function, which
traps this overflow condition:

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
void main(void);
void main(void)
{
     char* str  = "1234567891011121314151617181920";
     unsigned long num;
     char* leftover;
     num = strtoul(str, &leftover, 10);
     printf("Original string:      %s\n", str);
     printf("Converted number:     %lu\n", num);
     printf("Leftover characters:  %s\n", leftover);
}

In this example, the string to be converted is much too large to fit into an unsigned long integer variable.
The strtoul() function therefore returns ULONG_MAX (4294967295) and sets the char* leftover to point
to the character in the string that caused it to overflow. It also sets the global variable errno to  ERANGE to notify
the caller of the function that an overflow condition has occurred. The strtod() and strtol() functions
work exactly the same way as the  strtoul() function shown above. Refer to your C compiler documentation
for more information regarding the syntax of these functions.