Udostępnij przez


strtoll, _strtoll_l, wcstoll, _wcstoll_l

Konwertuje ciąg na long long wartość.

Składnia

long long strtoll(
   const char *strSource,
   char **endptr,
   int base
);
long long wcstoll(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
long long _strtoll_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
long long _wcstoll_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

strtoll Zwraca wartość reprezentowaną w ciągu strSource, z wyjątkiem sytuacji, gdy reprezentacja spowoduje przepełnienie — w takim przypadku zwraca LLONG_MAX wartość lub LLONG_MIN. Funkcja zwraca wartość 0, jeśli nie można wykonać konwersji. wcstoll zwraca wartości analogicznie do strtoll.

LLONG_MAX i LLONG_MIN są zdefiniowane w pliku LIMITS.H.

Jeśli strSource wartość jest NULL lub base jest niezerowa, a wartość jest mniejsza niż 2 lub większa niż 36, errno jest ustawiona na EINVALwartość .

Aby uzyskać więcej informacji na temat kodów zwracanych, zobacz errno, _doserrno, _sys_errlisti _sys_nerr.

Uwagi

Funkcja strtoll konwertuje strSource element na long long. Obie funkcje przestają odczytywać ciąg strSource przy pierwszym znaku, którego nie mogą rozpoznać jako części liczby. Może to być znak null zakończenia lub może być pierwszym znakiem liczbowym, który jest większy lub równy base. wcstoll jest wersją szerokoznakową ; strtolljego 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

Procedura TCHAR.H _UNICODE i _MBCS niezdefiniowane _MBCS Zdefiniowane _UNICODE Zdefiniowane
_tcstoll strtoll strtoll wcstoll
_tcstoll_l _strtoll_l _strtoll_l _wcstoll_l

Ustawienie kategorii ustawień regionalnych określa rozpoznawanie LC_NUMERIC znaku promienia w elem strSource. Aby uzyskać więcej informacji, zobacz setlocale, _wsetlocale. Funkcje, które nie mają sufiksu _l , używają bieżących ustawień regionalnych i _strtoll_l_wcstoll_l są identyczne z odpowiednimi funkcjami, które nie mają sufiksu, z tą różnicą, że zamiast tego używają ustawień regionalnych, które są przekazywane. Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Jeśli endptr 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.

strtollstrSource 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 są co najmniej jedną cyfrą dziesiętną; letters są co najmniej jedną literą "a" przez "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 wskazywanego przez strSource element są używane do określania podstawy. Jeśli pierwszy znak to "0", a drugi znak nie jest "x" ani "X", ciąg jest interpretowany jako liczba całkowita ósemkowa. 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. Litery "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 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 ósemkowa to ósemkowa, a znak "8" lub "9" zatrzymuje skanowanie.

Wymagania

Procedura Wymagany nagłówek
strtoll, _strtoll_l <stdlib.h>
wcstoll, _wcstoll_l <stdlib.h> lub <wchar.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

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
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l