Sdílet prostřednictvím


strtoimax, _strtoimax_l, , wcstoimax_wcstoimax_l

Převede řetězec na celočíselnou hodnotu největšího podporovaného celočíselného typu.

Syntaxe

intmax_t strtoimax(
   const char *strSource,
   char **endptr,
   int base
);
intmax_t wcstoimax(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
intmax_t _strtoimax_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
intmax_t _wcstoimax_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base,
   _locale_t locale
);

Parametry

strSource
Řetězec ukončený hodnotou null, který se má převést.

endptr
Ukazatel na znak, který zastaví kontrolu.

base
Číselný základ, který se má použít.

locale
Národní prostředí, které se má použít

Vrácená hodnota

strtoimax vrátí hodnotu, která je reprezentována v řetězci strSource, s výjimkou případů, kdy reprezentace způsobí přetečení – v takovém případě vrátí INTMAX_MAX nebo INTMAX_MIN, a errno je nastavena na ERANGE. Funkce vrátí hodnotu 0, pokud nelze provést žádný převod. wcstoimax vrátí hodnoty analogicky k strtoimax.

INTMAX_MAX a INTMAX_MIN jsou definovány v souboru stdint.h.

Pokud strSource je nebo base je NULL nenulová a je menší než 2 nebo větší než 36, errno je nastavena na EINVALhodnotu .

Další informace o návratových kódech naleznete v tématu errno, _doserrno, _sys_errlista _sys_nerr.

Poznámky

Funkce strtoimax se strSource převede na .intmax_t Verze širokého znaku strtoimax je wcstoimax; její strSource argument je řetězec širokého znaku. Jinak se tyto funkce chovají stejně. Obě funkce přestanou číst řetězec strSource na prvním znaku, který nedokáže rozpoznat jako součást čísla. Může se jednat o ukončující znak null nebo může být prvním číselným znakem, který je větší nebo roven base.

Nastavení kategorie národního prostředí LC_NUMERIC určuje rozpoznávání znaku radixu v strSource; další informace naleznete v tématu setlocale, _wsetlocale. Funkce, které nemají příponu _l , používají aktuální národní prostředí a _strtoimax_l _wcstoimax_l jsou shodné s odpovídajícími funkcemi, které nemají příponu _l s tím rozdílem, že místo toho používají předaný národní prostředí. Další informace naleznete v tématu Národní prostředí.

Pokud endptr není NULL, je ukazatel na znak, který zastavil kontrolu, uložen v umístění, na které odkazuje endptr. Pokud nelze provést žádný převod (nebyly nalezeny žádné platné číslice nebo byla zadána neplatná základna), hodnota strSource je uložena v umístění, na které odkazuje endptr.

Mapování rutin obecného textu

Rutina TCHAR.H _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_tcstoimax strtoimax strtoimax wcstoimax
_tcstoimax_l strtoimax_l _strtoimax_l _wcstoimax_l

strtoimaxstrSource očekává, že odkazuje na řetězec následujícího formuláře:

[whitespace] [{+ | -}] [0 [{ x | X }]] []digits | letters

Může whitespace se skládat ze znaků mezery a tabulátoru, které jsou ignorovány; digits jsou jedna nebo více desetinných číslic; letters jsou jedna nebo více písmen "a" až 'z' (nebo 'A' až 'Z'). První znak, který se nevejde do tohoto formuláře, zastaví prohledávání. Pokud base je mezi 2 a 36, použije se jako základ čísla. Pokud base je 0, počáteční znaky řetězce, na který strSource odkazuje, slouží k určení základu. Pokud je první znak 0 a druhý znak není x nebo X, řetězec se interpretuje jako osmičkové celé číslo. Pokud je první znak 0 a druhý znak je x nebo X, řetězec se interpretuje jako šestnáctkové celé číslo. Pokud je první znak 1 až 9, řetězec se interpretuje jako desetinné číslo. Písmena "a" až 'z' (nebo 'A' až 'Z') jsou přiřazena hodnoty 10 až 35; pouze písmena, jejichž přiřazené hodnoty jsou menší, než base jsou povoleny. První znak mimo rozsah základny zastaví kontrolu. Pokud je například base 0 a první znak skenován je 0, předpokládá se osmičkové celé číslo a znak 8 nebo 9 zastaví kontrolu.

Požadavky

Rutina Požadovaný hlavičkový soubor
strtoimax, _strtoimax_l, , wcstoimax_wcstoimax_l <inttypes.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Viz také

Konverze dat
Národní prostředí
localeconv
setlocale, _wsetlocale
Funkce řetězcových k číselným hodnotám
strtod, _strtod_l, , wcstod_wcstod_l
strtol, wcstol, , _strtol_l_wcstol_l
strtoul, _strtoul_l, , wcstoul_wcstoul_l
strtoumax, _strtoumax_l, , wcstoumax_wcstoumax_l
atof, _atof_l, , _wtof_wtof_l