Convert a wide-character string into a long integer
#include <wchar.h> long wcstol( const wchar_t * ptr, wchar_t ** endptr, int base ); long long wcstoll( const wchar_t * ptr, wchar_t ** endptr, int base );
- A pointer to the string to parse.
- If this argument isn't NULL, the function stores in it a pointer to the first unrecognized character found in the string.
- The base of the number being parsed:
- If base is zero, the first characters after the optional sign determine the base used for the conversion. If the first characters are 0x or 0X the digits are treated as hexadecimal. If the first character is 0, the digits are treated as octal. Otherwise, the digits are treated as decimal.
- If base isn't zero, it must have a value between 2 and 36. The letters a-z and A-Z represent the values 10 through 35. Only those letters whose designated values are less than base are permitted. If the value of base is 16, the characters 0x or 0X may optionally precede the sequence of letters and digits.
Use the -l c option to qcc to link against this library. This library is usually included automatically.
The wcstol() function converts the string pointed to by ptr into a long; wcstoll() converts the string into a long long.
These functions recognize strings that contain the following:
- optional white space
- an optional plus or minus sign
- a sequence of digits and letters.
The conversion ends at the first unrecognized wide character. If endptr isn't NULL, a pointer to the unrecognized wide character is stored in the object endptr points to.
The converted value.
If the correct value causes an overflow, LONG_MAX|LONGLONG_MAX or LONG_MIN|LONGLONG_MIN is returned according to the sign, and errno is set to ERANGE. If base is out of range, zero is returned and errno is set to EDOM.
- The value is not representable
- The value for base is not supported or no conversion could be performed.