wcstol, wcstoll

Header: <wchar.h>

Interprets an integer value in a wide string pointed to by str.

# Declarations

long wcstol( const wchar_t * str, wchar_t ** str_end, int base );

(since C95) (until C99)

long wcstol( const wchar_t * restrict str, wchar_t ** restrict str_end,
int base );

(since C99)

long long wcstoll( const wchar_t * restrict str, wchar_t ** restrict str_end,
int base );

(since C99)

# Parameters

# Return value

Integer value corresponding to the contents of str on success. If the converted value falls out of range of corresponding return type, range error occurs and LONG_MAX, LONG_MIN, LLONG_MAX or LLONG_MIN is returned. If no conversion can be performed, 0 is returned.

# Example

#include <stdio.h>
#include <errno.h>
#include <wchar.h>
 
int main(void)
{
    const wchar_t *p = L"10 200000000000000000000000000000 30 -40";
    printf("Parsing L'%ls':\n", p);
    wchar_t *end;
    for (long i = wcstol(p, &end, 10);
         p != end;
         i = wcstol(p, &end, 10))
    {
        printf("'%.*ls' -> ", (int)(end-p), p);
        p = end;
        if (errno == ERANGE){
            printf("range error, got ");
            errno = 0;
        }
        printf("%ld\n", i);
    }
}

# See also