strtol, wcstol, _strtol_l, _wcstol_l
Převede řetězce na hodnotu typu long int.
long strtol(
const char *nptr,
char **endptr,
int base
);
long wcstol(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
long _strtol_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
long _wcstol_l(
const wchar_t *nptr,
wchar_t **endptr,
int base,
_locale_t locale
);
Parametry
nptr
Řetězec zakončený null pro převod.endptr
Ukazatel na znak, který zastaví skenování.base
Základna čísla pro použití.locale
Použité národní prostředí.
Vrácená hodnota
Funkce strtol vrátí hodnotu představovanou řetězcem nptr s výjimkou případů, kdy by reprezentace způsobila přetečení, v takovém případě vrátí hodnotu LONG_MAX nebo LONG_MIN.strtol vrátí hodnotu 0, pokud převod lze provést.wcstol vrátí hodnoty analogicky k strtol.Pro obě funkce je errno nastavena na ERANGE v případě, že dojde k přetečení nebo podtečení.
Další informace o těchto a dalších návratových kódech naleznete v tématu _doserrno, errno, _sys_errlist a _sys_nerr.
Poznámky
Funkce strtol převede nptr na long.strtol zastaví čtení řetězce nptr u prvního znaku, který nebude rozpoznán jako část čísla.Může to být ukončující znak null nebo první číselný znak, který je větší než nebo se rovná base.
wcstol je širokoznaká verze strtol; její parametr nptr je širokoznaký řetězec.Tyto funkce se chovají jinak identicky.
Rutinní mapování obecného textu
Rutina TCHAR.H |
_UNICODE & _MBCS není definováno |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_tcstol |
strtol |
strtol |
wcstol |
_tcstol_l |
_strtol_l |
_strtol_l |
_wcstol_l |
Nastavení kategorie LC_NUMERIC aktuálního národního prostředí určuje rozpoznávání znaku radix v nptr*.* Další informace naleznete v tématu setlocale.Funkce bez přípony _l používají aktuální národní prostředí. Funkce _strtol_l a _wcstol_l jsou stejné jako odpovídající funkce bez přípony _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, ukazatel znaku, který zastavil skenování, je uložen v umístění, na které ukazuje endptr.Pokud žádné převody nemohou být provedeny (nebyly nalezeny žádné platné číslice nebo byla zadána neplatná základna), hodnota nptr je uložena na adrese, na kterou odkazuje endptr.
strtol očekává, že nptr ukáže na řetězec v následujícím formátu:
[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]
whitespace se může skládat ze znaků mezery a tabulátoru, které jsou ignorovány; digits jsou jedna nebo více desítkových číslic.První znak, který neodpovídá tomuto formuláři, zastaví prohledávání.Pokud base je mezi 2 a 36, je použit jako základ pro číslo.Pokud je hodnota base „0“, počáteční znaky řetězce odkazované z parametru nptr slouží ke stanovení základu.Pokud je první znak 0 a druhý znak není x nebo X, řetězec je interpretován jako osmičkové číslo.Pokud je první znak 0 a druhý znak je x nebo X, řetězec je interpretován jako hexadecimální celé číslo.Pokud je první znak "1" až "9", řetězec je interpretován jako desítkové celé číslo.Písmenům "a" až "z" (nebo "A" až "Z") jsou přiřazeny hodnoty 10 až 35; jsou povolena pouze písmena, jejichž přiřazené hodnoty jsou nižší než base.První znak mimo rozsah základny zastaví skenování.Například pokud má base hodnotu 0 a první naskenovaný znak je „0“, předpokládá se osmičkové celé číslo a znaky „8“ nebo „9“ zastaví skenování.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
strtol |
<stdlib.h> |
wcstol |
<stdlib.h> nebo <wchar.h> |
_strtol_l |
<stdlib.h> |
Další informace o kompatibilitě naleznete v úvodu tématu Kompatibilita.
Příklad
Možnost strtod naleznete v příkladu.
Ekvivalent v rozhraní .NET Framework
Viz také
Referenční dokumentace
Funkce řetězců na numerické hodnoty
strtod, _strtod_l, wcstod, _wcstod_l