Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Konwertuje ciągi na wartość całkowitą największego obsługiwanego typu liczby całkowitej bez znaku.
Składnia
uintmax_t strtoumax(
const char *strSource,
char **endptr,
int base
);
uintmax_t _strtoumax_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
uintmax_t wcstoumax(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
uintmax_t _wcstoumax_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
strtoumax Zwraca przekonwertowaną wartość, jeśli istnieje lub UINTMAX_MAX po przepełnieniu.
strtoumax Zwraca wartość 0, jeśli nie można wykonać konwersji.
wcstoumax zwraca wartości analogicznie do strtoumax. 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 uintmax_t wartość całkowitą.
strtoumax zatrzymuje odczytywanie ciągu strSource przy pierwszym znaku, który nie może 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. Ustawienie LC_NUMERIC kategorii ustawień regionalnych określa rozpoznawanie znaku promienia w elem strSource. Aby uzyskać więcej informacji, zobacz setlocale, _wsetlocale.
strtoumax i wcstoumax używają bieżących ustawień regionalnych; _strtoumax_l i _wcstoumax_l są identyczne, 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.
Wersja znaków szerokiego znaku strtoumax to wcstoumax; jego strSource argument jest ciągiem o szerokim znaku. W przeciwnym razie te funkcje zachowują się identycznie.
Mapowania procedur tekstu ogólnego
| Procedura TCHAR.H |
_UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
|---|---|---|---|
_tcstoumax |
strtoumax |
strtoumax |
wcstoumax |
_tcstoumax_l |
strtoumax_l |
_strtoumax_l |
_wcstoumax_l |
strtoumax
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" przez "z" (lub "A" do "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 zeskanowany znak to "0", zakłada się, że liczba ósemkowa to ósemkowa, a znak "8" lub "9" zatrzyma skanowanie.
strtoumaxumożliwia znak plus () lub znak minus (+-) prefiks; wiodący znak minus wskazuje, że wartość zwracana jest uzupełnieniem bezwzględnej wartości bezwzględnej przekonwertowanego ciągu.
Wymagania
| Procedura | Wymagany nagłówek |
|---|---|
strtoumax, , wcstoumax, , _strtoumax_l_wcstoumax_l |
<inttypes.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
strtoimax, , _strtoimax_l, , wcstoimax_wcstoimax_l
strtol, , wcstol, , _strtol_l_wcstol_l
strtoul, , _strtoul_l, , wcstoul_wcstoul_l
strtoll, , _strtoll_l, , wcstoll_wcstoll_l
atof, , _atof_l, , _wtof_wtof_l