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
Výklad sekvencí vícebajtových znaků