Compartilhar via


_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

Conversão de dados

Localidade

localeconv

setlocale, _wsetlocale

Funções de valor da cadeia de caracteres para numérico

strtod, _strtod_l, wcstod, _wcstod_l

strtoul, _strtoul_l, wcstoul, _wcstoul_l

atof, _atof_l, _wtof, _wtof_l