strtol, wcstol, _strtol_l, _wcstol_l
Konwertuje ciąg na wartość typu długa liczba całkowita.
long strtol(
const char *nptr,
char **endptr,
int base
);
long wcstol(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
long _strtol_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
long _wcstol_l(
const wchar_t *nptr,
wchar_t **endptr,
int base,
_locale_t locale
);
Parametry
nptr
Ciąg zakończony zerem do przekonwertowania.endptr
Wskaźnik znaku zatrzymującego skanowanie.base
Numer podstawowy do użycia.locale
Ustawienia regionalne do użycia.
Wartość zwracana
strtol zwraca wartość reprezentowaną w ciągu nptr, ale gdy reprezentacja spowoduje przepełnienie, zwraca LONG_MAX lub LONG_MIN.Funkcja strtol zwraca wartość 0, jeśli nie można wykonać konwersji.wcstol zwraca wartości analogicznie do strtol.Dla obu funkcji atrybut errno jest ustawiany na ERANGE, jeśli występuje przepełnienie lub niedopełnienie.
Aby uzyskać więcej informacji na temat tych i innych kodów powrotnych, zobacz _doserrno, errno, _sys_errlist, and _sys_nerr.
Uwagi
Funkcja strtol konwertuje parametr nptr na wartość long.Funkcja strtol przestaje odczytywać ciąg nptr przy pierwszym znaku, którego nie może rozpoznać jako elementu liczby.Może to być kończący znak null lub pierwszy znak numeryczny, który jest większy lub równy base.
wcstol to wersja znaku dwubajtowego strtol; jej argument nptr jest ciągiem znaku dwubajtowego.W innych przypadkach funkcje te zachowują się identycznie.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
Ustawienie kategorii LC_NUMERIC bieżących ustawień regionalnych określa rozpoznawanie znaku podstawy w parametrze nptr*;* aby uzyskać więcej informacji, zobacz setlocale.Funkcje, które nie mają przyrostka _l używają bieżących ustawień regionalnych; _strtol_l i _wcstol_l są identyczne z odpowiadającymi im funkcjami, które nie mają przyrostka _l, z tą różnicą, że w zamian korzystają z przekazanych ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.
Jeśli endptr nie jest NULL, wskaźnik znaku, który zatrzymał skanowanie jest przechowywany w lokalizacji wskazywanej przez endptr.Jeśli konwersja nie może być wykonywana (nie znaleziono żadnych prawidłowych cyfr lub określono nieprawidłową podstawę), wartość nptr jest przechowywana w lokalizacji wskazywanej przez endptr.
Funkcja strtol oczekuje, że parametr nptr wskaże ciąg o następującej postaci:
[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]
whitespace może składać się ze znaków spacji lub tabulatora, które są ignorowane; digits to jedna lub więcej cyfr dziesiętnych.Pierwszy znak, który nie mieści się w tym formularzu zatrzymuje skanowanie.Jeśli base jest między 2 a 36, zostanie użyty jako podstawa numeru.Jeśli atrybut base ma wartość 0, początkowe znaki ciągu wskazywane przez atrybut nptr są używane do określenia podstawy.Jeśli pierwszym znakiem jest 0, a drugim znakiem nie jest ,,x" lub ,,X", ciąg jest interpretowany jako ósemkowa liczba całkowita.Jeśli pierwszym znakiem jest ,,0", a drugim znakiem jest ,,x" lub ,,X", ciąg jest interpretowany jako szesnastkowa liczba całkowita.Jeśli pierwszym znakiem jest ,,1" do ,,9", ciąg jest interpretowany jako dziesiętna liczba całkowita.Literom ,,a" do ,,z" (lub ,,A" do ,,Z") są przypisane wartości od 10 do 35; tylko litery, których przypisane wartości są mniejsze niż base są dozwolone.Pierwszy znak spoza zakresu podstawy zatrzymuje skanowanie.Na przykład, jeśli atrybut base wynosi 0 i pierwszy znak skanowany to „0”, zakłada się liczbę całkowitą w postaci ósemkowej oraz, że znak „8” lub „9” zatrzyma skanowanie.
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> lub <wchar.h> |
_strtol_l |
<stdlib.h> |
Dodatkowe informacje o zgodności – zobacz: Zgodność we Wprowadzeniu.
Przykład
Zobacz przykład dotyczący funkcji strtod.
Odpowiednik w programie .NET Framework
Zobacz też
Informacje
Konwertowanie ciągów na wartości
strtod, _strtod_l, wcstod, _wcstod_l