Converts a wide string into a long (or long long) integer value
#include <wchar.h>
long int wcstol ( const wchar_t * restrict wcs , wchar_t ** restrict endptr ,
int base );
long long int wcstoll ( const wchar_t * restrict wcs ,
wchar_t ** restrict endptr , int base ); (C99)
The wcstol( ) function attempts to interpret the wide string addressed by its first pointer argument, wcs, as an integer numeric value, and returns the result with the type long. wcstoll( ) is similar, but returns long long. These functions are the wide-string equivalents of strtol( ) and strtoll( ), and they work in the same way, except that they operate on strings of wchar_t rather than char. See the description under strtol( ) in this chapter. Example
wchar_t date[ ] = L"10/3/2005, 13:44:18 +0100", *more = date;
long day, mo, yr, hr, min, sec, tzone;
day = wcstol( more, &more, 10 ); // &more is the address of a pointer
mo = wcstol( more+1, &more, 10 );
yr = wcstol( more+1, &more, 10 );
hr = wcstol( more+1, &more, 10 );
min = wcstol( more+1, &more, 10 );
sec = wcstol( more+1, &more, 10 );
tzone = wcstol( more+1, &more, 10 );
wprintf( L"It's now %02ld:%02ld o'clock on %02ld-%02ld-%02ld.\n",
hr, min, mo, day, yr % 100 );
This code produces the following output: It's now 13:44 o'clock on 03-10-05. See Alsowcstoul( ), wcstoull( ), wcstod( ), wcstof( ), and wcstold( ); strtol( ), strtoll( ), strtoul( ), and strtoull( ) |