function

strtoll

<cstdlib>
long long int strtoll ( const char * str, char ** endptr, int base );
Convert string to long long integer
Parses the C string str interpreting its content as an integral number of the specified base, which is returned as a long long int value. If endptr is not a null pointer, the function also sets the value of endptr to point to the first character after the number.

This function operates like strtol to interpret the string, but produces numbers of type long long int (see strtol for details on the interpretation process).

Parameters

str
C string beginning with 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.

Return Value

On success, the function returns the converted integral number as a long int value.
If no valid conversion could be performed, a zero value is returned (0LL).
If the value read is out of the range of representable values by a long long int, the function returns LLONG_MAX or LLONG_MIN (defined in <climits>), and errno is set to ERANGE.

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/* strtoll example */
#include <stdio.h>
#include <stdlib.h>

int main ()
{
  char szNumbers[] = "1856892505 17b00a12b -01100011010110000010001101100 0x6fffff";
  char * pEnd;
  long long int lli1, lli2, lli3, lli4;
  lli1 = strtoll (szNumbers,&pEnd,10);
  lli2 = strtoll (pEnd,&pEnd,16);
  lli3 = strtoll (pEnd,&pEnd,2);
  lli4 = strtoll (pEnd,NULL,0);
  printf ("The decimal equivalents are: %lld, %lld, %lld and %lld.\n", lli1, lli2, lli3, lli4);
  return 0;
}


Possible output:

The decimal equivalents are: 1856892505, 6358606123, -208340076 and 7340031

See also