_strtoui64, _wcstoui64, _strtoui64_l, _wcstoui64_l
Converter uma cadeia de caracteres em um valor sem sinal de __int64.
unsigned __int64 _strtoui64(
const char *nptr,
char **endptr,
int base
);
unsigned __int64 _wcstoui64(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
unsigned __int64 _strtoui64_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
unsigned __int64 _wcstoui64(
const wchar_t *nptr,
wchar_t **endptr,
int base,
_locale_t locale
);
Parâmetros
nptr
Cadeia de caracteres nula a ser convertida.endptr
Ponteiro para o caractere que para o exame.base
Número base a ser usado.locale
Localidade a ser usada.
Valor de retorno
_strtoui64retorna o valor representado na cadeia de caracteres nptr, exceto quando a representação resultaria em estouro, nesse caso, retornaria _UI64_MAX. _strtoui64retornará 0 se não for possível executar alguma conversão.
_UI64_MAX é definido em LIMITS.H.
Se nptr for NULL ou base for diferente de zero e menor que 2 ou maior que 36, errno será definido como EINVAL.
Para obter mais informações sobre esses e outros códigos de retorno, consulte _doserrno, errno, _sys_errlist, and _sys_nerr.
Comentários
A função _strtoui64converte nptr para um unsigned __int64. _wcstoui64 é uma versão de caractere amplo de _strtoui64; seu argumento nptr é uma cadeira de caractere longo. Do contrário, essas funções se comportam de forma idêntica.
Ambas as funções deixam de ler a cadeia de caracteres nptr no primeiro caractere que não reconhecem como parte de um número. Pode ser o caractere nulo de terminação,ou o primeiro caractere numérico maior ou igual a base.
Mapeamentos da rotina de texto genérico
Rotina TCHAR.H |
_UNICODE & _MBCS não definido |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcstoui64 |
_strtoui64 |
_strtoui64 |
_wstrtoui64 |
_tcstoui64_l |
_strtoui64_l |
_strtoui64_l |
_wstrtoui64_l |
A configuração de categoria atual LC_NUMERIC da localidade determina o reconhecimento do caractere raiz em nptr; para obter mais informações, consulte setlocale. As funções sem o sufixo _l suffix usam a localidade atual; _strtoui64_l e_wcstoui64_l são idênticas à função correspondente sem o sufixo _l, exceto que elas usam a localidade informada no lugar. Para obter mais informações, consulte Localidade.
Se endptr não for NULL, um ponteiro para o caractere que interrompeu a verificação é armazenado no local apontado por endptr. Se nenhuma conversão puder ser executada (nenhum dígito válido foi encontrado ou uma base inválida foi especificada), o valor de nptr será armazenado no local apontado por endptr.
_strtoui64 espera nptr apontar para uma cadeia de caracteres da seguinte forma:
[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]
Um whitespace pode conter os caracteres de espaço e de tabulação, que são ignorados; digits são um ou mais dígitos decimais. O primeiro caractere que não se ajusta a este formulário interrompe o exame. Se base estiver entre 2 e 36, então será usado como a base do número. Se base é 0, os caracteres iniciais da cadeia de caracteres apontada por nptr são usados para determinar a base. Se o primeiro caractere for 0 e o segundo não for 'x' ou 'X', a cadeia de caracteres será interpretada como um inteiro octal. Se o primeiro caractere for “0 " e o segundo caractere for “x” ou “X”, a cadeia de caracteres será interpretada como um inteiro hexadecimal. Se o primeiro caractere for “1 " a “9 ", a cadeia de caracteres será interpretada como um número decimal. As letras ”a" a “z” (ou “A” a “Z ") são atribuídas aos valores de 10 a 35; somente letras cujos valores atribuídos são menores que base são permitidas. O primeiro caractere fora do intervalo de base para o exame. Por exemplo, se base for 0 e o primeiro caractere verificado for "0", um número inteiro octal será assumido e um caractere "8" ou "9" interromperá a verificação.
Requisitos
Rotina |
Cabeçalho necessário |
---|---|
_strtoui64 |
<stdlib.h> |
_wcstoui64 |
<stdlib.h> ou <wchar.h> |
_strtoui64_l |
<stdlib.h> |
_wcstoui64_l |
<stdlib.h> ou <wchar.h> |
Para informações adicionais de compatibilidade, consulte Compatibilidade na Introdução.
Exemplo
// 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 );
}
Consulte também
Referência
Funções de valor da cadeia de caracteres para numérico
strtod, _strtod_l, wcstod, _wcstod_l