strtoul
, , _strtoul_l
, , wcstoul
_wcstoul_l
Konwertuj ciągi na niepodpisaną wartość liczb całkowitych z długimi znakami.
Składnia
unsigned long strtoul(
const char *strSource,
char **endptr,
int base
);
unsigned long _strtoul_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
unsigned long wcstoul(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
unsigned long _wcstoul_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Parametry
strSource
Ciąg zakończony wartością null do konwersji.
endptr
Wskaźnik do znaku, który zatrzymuje skanowanie.
base
Podstawa liczbowa do użycia.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
strtoul
Zwraca przekonwertowaną wartość, jeśli istnieje lub ULONG_MAX
po przepełnieniu. strtoul
Zwraca wartość 0, jeśli nie można wykonać konwersji. wcstoul
zwraca wartości analogicznie do strtoul
. Dla obu funkcji errno
jest ustawiona wartość ERANGE
, jeśli występuje przepełnienie lub niedopełnienie.
Aby uzyskać więcej informacji na temat kodów zwracanych, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
Każda z tych funkcji konwertuje ciąg strSource
wejściowy na unsigned long
.
strtoul
zatrzymuje odczytywanie ciągu strSource
przy pierwszym znaku, który nie może rozpoznać jako części liczby. Ten znak może być kończeniem NULL
lub może być pierwszym znakiem liczbowym większym lub równym base
. Ustawienie LC_NUMERIC
kategorii ustawień regionalnych określa rozpoznawanie znaku promieniowego w strSource
elem. Aby uzyskać więcej informacji, zobacz setlocale
. strtoul
i wcstoul
używają bieżących ustawień regionalnych; _strtoul_l
i _wcstoul_l
są identyczne, z tą różnicą, że używają ustawień regionalnych przekazanych zamiast. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.
Jeśli endptr
tak nie NULL
jest , wskaźnik do znaku, który zatrzymał skanowanie, jest przechowywany w lokalizacji wskazywanej przez endptr
. Jeśli nie można wykonać konwersji (nie znaleziono prawidłowych cyfr lub określono nieprawidłową bazę), wartość strSource
jest przechowywana w lokalizacji wskazywanej przez endptr
.
wcstoul
jest wersją szerokoznakową ; strtoul
jego strSource
argument jest ciągiem o szerokim znaku. W przeciwnym razie te funkcje zachowują się identycznie.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
TCHAR.H rutyna |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
---|---|---|---|
_tcstoul |
strtoul |
strtoul |
wcstoul |
_tcstoul_l |
strtoul_l |
_strtoul_l |
_wcstoul_l |
strtoul
strSource
oczekuje wskazywania ciągu następującego formularza:
[whitespace] [{+ | -}] [0 [{ x | X }]] [digits | letters]
Element whitespace
może składać się z spacji i znaków tabulacji, które są ignorowane. digits
to co najmniej jedna cyfra dziesiętna. letters
są co najmniej jedną literą 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
wartość to 0, początkowe znaki ciągu wskazywane przez strSource
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", a drugi znak to x
lub X
, ciąg jest interpretowany jako liczba całkowita szesnastkowa. Jeśli pierwszy znak to od "1" do "9", ciąg jest interpretowany jako liczba całkowita dziesiętna. a
Litery za pośrednictwem z
(lub A
Z
do ) są przypisane wartości od 10 do 35; tylko litery, których przypisane wartości są mniejsze niż base
dozwolone. Pierwszy znak poza zakresem podstawy zatrzymuje skanowanie. Na przykład jeśli base
wartość to 0, a pierwszy przeskanowany znak to "0", zakłada się, że liczba całkowita ósemkowa, a znak "8" lub "9" zatrzyma skanowanie. strtoul
umożliwia znak plus () lub minus (+
-
) prefiks; wiodący znak minus wskazuje, że zwracana wartość jest negowana.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
strtoul |
<stdlib.h> |
wcstoul |
<stdlib.h> lub <wchar.h> |
_strtoul_l |
<stdlib.h> |
_wcstoul_l |
<stdlib.h> lub <wchar.h> |
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
strtol
, , wcstol
, , _strtol_l
_wcstol_l
atof
, , _atof_l
, , _wtof
_wtof_l