Name

wcstol, wcstoll

Synopsis

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

#include <wchar.h>
long intwcstol( 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 Also

wcstoul(), wcstoull(), wcstod(), wcstof(), and wcstold(); strtol(), strtoll(), strtoul(), and strtoull()

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.