Sdílet prostřednictvím


Funkce řetězců na numerické hodnoty

Poznámky

Každá funkce v strtod řady převede řetězec zakončený hodnotou null na numerickou hodnotu.V následující tabulce jsou uvedeny dostupné funkce.

Funkce

Description

strtod

Převést řetězec na hodnotu s dvojitou přesností plovoucí bod

strtol

Převést řetězec na hodnotu Dlouhé celé číslo

strtoul

Převést řetězec na dlouhé celé číslo bez znaménka

_strtoi64

Převést řetězec na 64-bit __int64 celé číslo

_strtoui64

64-bit nepodepsané převést řetězec na __int64 celé číslo

wcstod, wcstol, wcstoul, and _wcstoi64 are wide-character versions of strtod, strtol, strtoul, and _strtoi64, respectively.Každá z těchto funkcí širokého znaku řetězce argument je řetězec širokého znaku; Každá funkce se chová stejně jeho protějšek jeden bajt – znak jinak.

strtod Funkce přebírá dva argumenty: vstupní řetězec je první a druhá ukazatel na znak, který končí proces převodu.strtol, strtoul, _strtoi64 a _strtoui64 za třetí argument číslo základní použití v procesu převodu.

Vstupní řetězec je posloupnost znaků, které lze interpretovat jako hodnotu zadaného typu.Každá funkce ukončí čtení řetězce u prvního znaku, který nelze rozpoznat jako část čísla.Může to být ukončující znak null.Pro strtol, strtoul, _strtoi64, a _strtoui64, tento ukončovací znak může být také prvního číselného znaku větší než nebo rovno základní číslo zadané uživatelem.

Pokud není nastaven ukazatel uživatelem zadaný znak konce převodu NULL v době volání ukazatel na znak, který se zastavil, kontroly budou uloženy tam místo.Pokud žádné převody mohou být provedeny (nebyly nalezeny žádné platné číslice nebo byl zadán neplatný base), hodnota řetězce ukazatele je uložena na této adrese.

strtodočekává řetězec v následujícím formátu:

mezera] sign] digits] **.**digits [ {d | D | e | E}signdigits

A mezera může obsahovat znaky mezera nebo tabulátor, které jsou ignorovány; sign is either plus (+) or minus (); a digits jsou jedna nebo více desítkových číslic.Žádné se před číselnou soustavou znaků nenachází žádná číslice, poslední číslice se musí nacházet za číselnou soustavou znaků.Může být následován desítkových číslic exponentu, který se skládá z úvodní písmeno (d, D, e, nebo E) a volitelně znaménkem.Pokud se nezobrazí část exponenty ani číselná soustava znaků, předpokládá se, že číselná soustava znaků postupuje podle poslední číslice v řetězci.První znak, který neodpovídá tomuto formuláři, zastaví prohledávání.

strtol, strtoul, _strtoi64, A _strtoui64 funkce očekávají, že řetězec v následujícím formátu:

mezera[{+ | }]0 { x | X}]] digits

Pokud je základní argument mezi 2 a 36, použije se jako základ pro číslo.Pokud je 0, odkazuje ukazatel koncový převod počáteční znaky slouží ke stanovení základu.Pokud není druhý znak "x" nebo "X", první znak je 0 řetězec je interpretován jako osmičkové číslo; jinak je interpretován jako desetinné čí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ísmena "a" až "z" (nebo "A" až "Z") jsou přiřazeny hodnoty 10 až 35; pouze písmena, jejichž přiřazené hodnoty jsou nižší než základní jsou povoleny.strtoula _strtoui64 umožnit plus (+) nebo minus () znak předpony; úvodní znaménko minus označuje, zda je vrácená hodnota Negované.

Výstupní hodnota je ovlivněna nastavením kategorie LC_NUMERIC národního prostředí; viz setlocale pro další informace.Verze těchto funkcí bez přípony _l používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s příponou _l jsou stejné s tím rozdílem, že používají předaný parametr národního prostředí.

Pokud hodnoty vrácené těmito funkcemi způsobí přetečení nebo podtečení aplikace nebo při převodu není možné, zvláštní případ hodnoty jsou vráceny, jak je uvedeno:

Funkce

Podmínka

Vrácená hodnota

strtod

Přetečení

+/- HUGE_VAL

strtod

Podtečení nebo žádný převod.

0

strtol

+ Přetečení

LONG_MAX

strtol

-Přetečení

LONG_MIN

strtol

Podtečení nebo žádný převod.

0

_strtoi64

+ Přetečení

_I64_MAX

_strtoi64

-Přetečení

_I64_MIN

_strtoi64

Žádný převod.

0

_strtoui64

Přetečení

_UI64_MAX

_strtoui64

Žádný převod.

0

_I64_MAX, _I64_MIN, a _UI64_MAX jsou definovány v MEZÍCH.H.

wcstod, wcstol, wcstoul, _wcstoi64, and _wcstoui64 are wide-character versions of strtod, strtol, strtoul, _strtoi64, and _strtoui64, respectively; Každá z těchto funkcí širokého znaku konce převodu argument ukazatele je řetězec širokého znaku.V opačném případě se každá z těchto funkcí širokého znaku se chová stejně jeho protějšek jeden bajt – znak.

Viz také

Referenční dokumentace

Převod dat

Národní prostředí

Výklad sekvencí vícebajtových znaků

Podpora plovoucí desetinné čárky

atof, _atof_l, _wtof, _wtof_l