Sdílet prostřednictvím


_strtoui64, _wcstoui64, , _strtoui64_l_wcstoui64_l

Převede řetězec na unsigned __int64 hodnotu.

Syntaxe

unsigned __int64 _strtoui64(
   const char *strSource,
   char **endptr,
   int base
);
unsigned __int64 _wcstoui64(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
unsigned __int64 _strtoui64_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
unsigned __int64 _wcstoui64_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í prohledávání.

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

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

Vrácená hodnota

_strtoui64 vrátí hodnotu reprezentovanou v řetězci strSources výjimkou případů, kdy reprezentace způsobí přetečení, v takovém případě vrátí _UI64_MAX. _strtoui64 vrátí hodnotu 0, pokud nelze provést žádný převod.

_UI64_MAXje definován v .LIMITS.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 _strtoui64 se strSource převede na .unsigned __int64 _wcstoui64 je širokoznační verze _strtoui64; jeho 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.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Pokud ho chcete změnit, přečtěte si téma Globální stav v CRT.

Mapování rutin obecného textu

TCHAR.H rutina _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_tcstoui64 _strtoui64 _strtoui64 _wcstoui64
_tcstoui64_l _strtoui64_l _strtoui64_l _wcstoui64_l

Nastavení kategorie aktuálního národního prostředí LC_NUMERIC určuje rozpoznávání znaku radixu v strSource; další informace naleznete v tématu setlocale. Funkce bez přípony _l používají aktuální národní prostředí _strtoui64_l a _wcstoui64_l jsou shodné s odpovídajícími funkcemi 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 na znak, který zastavil kontrolu, je uložen v umístění, na které endptrodkazuje . 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é endptrodkazuje .

_strtoui64strSource 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 z mezery a znaků tabulátoru, které jsou ignorovány. digits jsou jedno nebo více desetinných číslic. letters jsou jedno 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 kontrola 8 nebo 9 zastaví kontrolu.

Požadavky

Function Požadovaný hlavičkový soubor
_strtoui64 <stdlib.h>
_wcstoui64 <stdlib.h> nebo <wchar.h>
_strtoui64_l <stdlib.h>
_wcstoui64_l <stdlib.h> nebo <wchar.h>

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

Příklad

// crt_strtoui64.c
#include <stdio.h>

unsigned __int64 atoui64(const char *szUnsignedInt) {
   return _strtoui64(szUnsignedInt, NULL, 10);
}

int main() {
   unsigned __int64 u = atoui64("18446744073709551615");
   printf( "u = %I64u\n", u );
}
u = 18446744073709551615

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
strtoul, _strtoul_l, , wcstoul_wcstoul_l
atof, _atof_l, , _wtof_wtof_l