Udostępnij za pośrednictwem


strtol, , wcstol, , _strtol_l_wcstol_l

Konwertuj ciągi na long wartość całkowitą.

Składnia

long strtol(
   const char *string,
   char **end_ptr,
   int base
);
long wcstol(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base
);
long _strtol_l(
   const char *string,
   char **end_ptr,
   int base,
   _locale_t locale
);
long _wcstol_l(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base,
   _locale_t locale
);

Parametry

string
Ciąg zakończony wartością null do konwersji.

end_ptr
Parametr wyjściowy, ustawiony tak, aby wskazywał znak po ostatnim zinterpretowany znak. Ignorowane, jeśli NULL.

base
Podstawa liczbowa do użycia.

locale
Ustawienia regionalne do użycia.

Wartość zwracana

strtol, , wcstol_strtol_li _wcstol_l zwraca wartość reprezentowaną w pliku string. Zwracają wartość 0, jeśli nie jest możliwa konwersja. Gdy reprezentacja spowoduje przepełnienie, zwracają LONG_MAX wartość lub LONG_MIN.

errno jest ustawiona na ERANGE wartość , jeśli występuje przepełnienie lub niedopełnienie. Jest ona ustawiona na EINVAL wartość , jeśli string ma NULLwartość . Lub, jeśli base jest nonzero i mniejsze niż 2, lub większe niż 36. Aby uzyskać więcej informacji na temat ERANGE, i innych kodów powrotnych, zobacz errno, _doserrno, _sys_errlisti _sys_nerr. EINVAL

Uwagi

Funkcje strtol, wcstol, _strtol_li _wcstol_l są konwertowane string na longwartość . Przestają odczytywać string pierwszy znak, który nie jest rozpoznawany jako część liczby. Może to być znak kończący-null lub pierwszy znak alfanumeryczny większy niż lub równy base.

wcstol i _wcstol_l są wersjami strtol o szerokim znaku i _strtol_l. Ich string argument jest ciągiem o szerokim znaku. Te funkcje zachowują się identycznie jak strtol i _strtol_l w inny sposób. Ustawienie kategorii ustawień regionalnych określa rozpoznawanie LC_NUMERIC znaku promieniowego (znacznik ułamkowy lub punkt dziesiętny) w .string Funkcje strtol i wcstol używają bieżących ustawień regionalnych. _strtol_l i _wcstol_l zamiast tego użyj ustawień regionalnych przekazanych. Aby uzyskać więcej informacji, zobacz [setlocale] i Ustawienia regionalne.

Gdy end_ptr wartość to NULL, jest ignorowana. W przeciwnym razie wskaźnik do znaku, który zatrzymał skanowanie, jest przechowywany w lokalizacji wskazywanej przez end_ptr. Nie można wykonać konwersji, jeśli nie znaleziono prawidłowych cyfr lub określono nieprawidłową bazę. Wartość parametru string jest następnie przechowywana w lokalizacji wskazywanej przez end_ptr.

strtolstring oczekuje wskazywania ciągu następującego formularza:

[whitespace] [{+ | -}] [0 [{ x | X }]] [alphanumerics]

Nawiasy kwadratowe ([ ]) otaczają elementy opcjonalne. Nawiasy klamrowe i pionowy pasek ({ | }) otaczają alternatywy dla jednego elementu. whitespace może składać się z spacji i znaków tabulacji, które są ignorowane. alphanumerics to cyfry dziesiętne lub litery 'a' za pośrednictwem 'z' (lub 'A' przez 'Z'). Pierwszy znak, który nie pasuje do tego formularza, zatrzymuje skanowanie. Jeśli base wartość wynosi od 2 do 36, jest używana jako podstawa liczby. Jeśli base to 0, początkowe znaki ciągu wskazywane przez string są używane do określania podstawy. Jeśli pierwszy znak to 0, a drugi znak nie 'x' jest lub 'X', ciąg jest interpretowany jako ósemkowa liczba całkowita. Jeśli pierwszy znak to '0' i drugi znak to 'x' lub 'X', ciąg jest interpretowany jako liczba całkowita szesnastkowa. Jeśli pierwszy znak ma '1' wartość , '9'ciąg jest interpretowany jako liczba całkowita dziesiętna. 'a' Litery przez 'z' (lub 'A' przez 'Z') są przypisane wartości od 10 do 35. Skanowanie zezwala tylko na litery, których wartości są mniejsze niż base. Pierwszy znak poza zakresem podstawy zatrzymuje skanowanie. Załóżmy na przykład, że string zaczyna się od "01". Jeśli base wartość to 0, skaner zakłada, że jest to liczba całkowita ósemkowa. Znak '8' lub '9' zatrzymuje skanowanie.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Mapowania procedur tekstu ogólnego

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS zdefiniowany _UNICODE zdefiniowany
_tcstol strtol strtol wcstol
_tcstol_l _strtol_l _strtol_l _wcstol_l

Wymagania

Procedura Wymagany nagłówek
strtol <stdlib.h>
wcstol <stdlib.h> lub <wchar.h>
_strtol_l <stdlib.h>
_wcstol_l <stdlib.h> lub <wchar.h>

Funkcje _strtol_l i _wcstol_l są specyficzne dla firmy Microsoft, a nie częścią standardowej biblioteki C. Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

Zobacz przykład dla elementu strtod.

Zobacz też

Konwersja danych
ustawienia regionalne
localeconv
setlocale, _wsetlocale
Funkcje ciąg-wartość liczbowa
strtod, , _strtod_l, , wcstod_wcstod_l
strtoll, , _strtoll_l, , wcstoll_wcstoll_l
strtoul, , _strtoul_l, , wcstoul_wcstoul_l
atof, , _atof_l, , _wtof_wtof_l