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_errlisti _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 NULLlub może być pierwszym znakiem liczbowym większym lub równym base. Ustawienie LC_NUMERIC kategorii ustawień regionalnych określa rozpoznawanie znaku promieniowego w strSourceelem. 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 NULLjest , 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ą ; strtouljego 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 Rutynowych _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcstoul strtoul strtoul wcstoul
_tcstoul_l strtoul_l _strtoul_l _wcstoul_l

strtoulstrSource 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 AZdo ) 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. strtoulumoż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