C Reference function strtol()

This function of stdlib will convert a string to long integer.

Usage of strtol():

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


C string str interpreting its content as an integral number of the specified base, which is returned as a long int value. If endptr is not a null pointer, the function also sets the value pointed by endptr to point to the first character after the number. White-spaces are discarded until the first non-whitespace character is found.

Return value:

The function returns the converted floating point number as a long int value, if successful.
If no valid conversion could be performed then an zero value is returned.
If the value is out of range then LONG_MAX or LONG_MIN is returned.

Source code example of strtol():


int main ()
	char buffer[] = "2008 40a0b0 -1101110100110111100110 0x5abfff";
	char * ptr_end;
	long int li1, li2, li3, li4;

	li1 = strtol (buffer,&ptr_end,10);
	li2 = strtol (ptr_end,&ptr_end,16);
	li3 = strtol (ptr_end,&ptr_end,2);
	li4 = strtol (ptr_end,NULL,0);

	printf ("In decimals: %ld, %ld, %ld, %ld.\n", li1, li2, li3, li4);

	return 0;

Output of the strtol example program above:

	In decimals: 2008, 4235440, -3624422 , 5947391
This entry was posted in C Reference stdlib.h Functions. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site. Tweet This! Tweet This! or use to share this post with others.

Leave a Reply: