C strtol() function

C strtol() function - Convert a string to a long integer

Syntax strtol() function

long int strtol(const char *str, char **endptr, int base)

The strtol() function is used to convert a character string to a long integer value according to the given base, which must be between 2 and 36 inclusive, or be the special value 0. The parameter str points to a sequence of characters that can be interpreted as a numeric value of type long int.

Parameters strtol() function

Name Description Required /Optional
str Null-terminated string to convert. Required
endptr An output parameter, set to point to the character after the last interpreted character. Ignored, if NULL. Required
base Number base to use. Required

Return value from strtol()

  • Upon successful completion, the function returns the converted value.
  • Returns 0 if no conversion is possible.

Example: strtol() function

The following example shows the usage of strtol() function.

#include <stdlib.h>
#include <stdio.h>
int main(void)
   char *string, *stopstring;
   long result;
   int bs;
   string = "2334567765924932";
   printf("String = %s\n", string);
   for (bs = 2; bs <= 8; bs *= 2)
      result = strtol(string, &stopstring, bs);
      printf("\nstrtol = %ld (base %d)\n", result, bs);
      printf("Stopped scan at %s\n", stopstring);


String = 2334567765924932

strtol = 0 (base 2)
Stopped scan at 2334567765924932

strtol = 47 (base 4)
Stopped scan at 4567765924932

strtol = 326299637 (base 8)
Stopped scan at 924932

C Programming Code Editor:

Previous C Programming: C strtod()
Next C Programming: C strtoul()

Follow us on Facebook and Twitter for latest update.

C Programming: Tips of the Day

What's this =! operator?

That's two operators, = and !, not one. It might be an obfuscated way of writing

a = !b;
if (a) {					
    // whatever

setting a to the logical inverse of b, and testing whether the result is true (or, equivalently, whether b was false).

Or it might be a mistyping of a != b.

Ref : https://bit.ly/3iFvMln

We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook