Name

strtol, strtoll

Synopsis

Converts a string into a long (or long long) integer value

#include <stdlib.h>
longstrtol( const char * restrict s, char ** restrict endptr, int base );
long long strtoll( const char * restrict s, char ** restrict endptr,
                   int base );        (C99)

The strtol() function attempts to interpret the string addressed by its first pointer argument, s, as an integer numeric value, and returns the result with the type long. strtoll() is similar, but returns long long. The character string is interpreted as a numeral to the base specified by the third argument, base, which must be 0 or an integer between 2 and 36. If base is 36, then the letters from a to z (and likewise those from A to Z) are used as digits with values from 10 to 35. If base is between 10 and 35, then only those letters up to the digit value of base minus one are permissible. In other locales besides the default locale, C, other character sequences may also be interpretable as numerals.

If base is zero, then the numeral string is interpreted as octal if it begins, after an optional plus or minus sign, with the character 0, hexadecimal if it begins with 0x or 0X, or decimal if it begins with a digit from 1 to 9. Leading whitespace characters are ignored, and the string converted ends with the last character than can be interpreted as part of the numeral.

The second parameter, endptr, is a pointer to a pointer. If its argument value is not a null pointer, then the function stores a pointer to the first character ...

Get C in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.