strtoul, _strtoul_l, wcstoul, _wcstoul_l
Převod řetězce na unsigned long celočíselnou hodnotu.
unsigned long strtoul(
const char *nptr,
char **endptr,
int base
);
unsigned long _strtoul_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
unsigned long wcstoul(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
unsigned long _wcstoul_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
strtoul vrátí převedenou hodnotu, je-li k dispozici, nebo ULONG_MAX při přetečení.strtoul vrátí hodnotu 0, pokud převod lze provést.wcstoul vrátí hodnoty analogicky k strtoul.Pro obě funkce je errno nastavena na ERANGE v případě, že dojde k přetečení nebo podtečení.
Viz _doserrno, kód chyby, _sys_errlist a _sys_nerr Další informace o této a dalších návratových kódů.
Poznámky
Každá z těchto funkcí převede vstupní řetězec nptr k unsignedlong.
strtoul 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.LC_NUMERIC Kategorie nastavení národního prostředí určuje rozpoznávání znaků radix v nptr; Další informace naleznete v tématu setlocale.strtoula wcstoul použít aktuální národní prostředí; _strtoul_la _wcstoul_l jsou shodné s tím rozdílem, že používají místo něho předán 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.
wcstoul je širokoznaká verze strtoul; její parametr nptr je širokoznaký řetězec.Jinak se tyto funkce chovají identicky.
Rutinní mapování obecného textu
Rutina TCHAR.H |
_UNICODE & _MBCS není definováno |
_MBCS definováno |
_UNICODE definováno |
---|---|---|---|
_tcstoul |
strtoul |
strtoul |
wcstoul |
_tcstoul_l |
strtoul_l |
_strtoul_l |
_wcstoul_l |
strtoul 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í.strtoulUmožňuje plus (+) nebo minus (–) znak předpony; úvodní znaménko minus označuje, zda je vrácená hodnota Negované.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
strtoul |
<stdlib.h> |
wcstoul |
<stdlib.h> nebo <wchar.h> |
_strtoul_l |
<stdlib.h> |
_wcstoul_l |
<stdlib.h> nebo <wchar.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