long atol(char *nptr)
double charstod(int (*f)(void *), void *a)
double strtod(char *nptr, char **rptr)
long strtol(char *nptr, char **rptr, int base)
ulong strtoul(char *nptr, char **rptr, int base)
vlong strtoll(char *nptr, char **rptr, int base)
Atoi and atol recognize an optional string of tabs and spaces, then an optional sign, then a string of decimal digits.
Strtod , strtol , strtoul , and strtoll behave similarly to atol and, if rptr is not zero, set *rptr to point to the input character immediately after the string converted.
Strtod recognizes an optional string of tabs and spaces, then an optional sign, then a string of digits optionally containing a decimal point, then an optional .L e or .L E followed by an optionally signed integer.
Strtol , strtoul and strtoll interpret the digit string in the specified base , from 2 to 36, each digit being less than the base. Digits with value over 9 are represented by letters, a-z or A-Z. If base is 0, the input is interpreted as an integral constant in the style of C (with no suffixed type indicators): numbers are octal if they begin with .LR 0 , hexadecimal if they begin with .L 0x or .LR 0X , otherwise decimal. Strtoul does not recognize signs.
Charstod interprets floating point numbers in the same syntax as strtod , but it gets successive characters by calling (*f)(\f2a\f5) . The last call to f terminates the scan, so it must have returned a character that is not a legal continuation of a number. Therefore, it may be necessary to back up the input stream one character after calling charstod .