_strtoi64
, _wcstoi64
, _strtoi64_l
, _wcstoi64_l
Converta uma cadeia de caracteres em valor __int64
.
Sintaxe
__int64 _strtoi64(
const char *strSource,
char **endptr,
int base
);
__int64 _wcstoi64(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
__int64 _strtoi64_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
__int64 _wcstoi64_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Parâmetros
strSource
Cadeia de caracteres terminada em nulo a ser convertida.
endptr
Ponteiro para o caractere que interrompe a verificação.
base
O número base a ser usado.
locale
A localidade a ser usada.
Valor retornado
_strtoi64
retorna o valor representado em uma cadeia de caracteres strSource
, exceto quando a representação causaria um estouro — nesse caso, a função retorna _I64_MAX
ou _I64_MIN
. A função retornará 0, se nenhuma conversão puder ser realizada. _wcstoi64
retorna valores de maneira semelhante a _strtoi64
.
_I64_MAX
e _I64_MIN
são definidos em LIMITS.H.
Se strSource
é NULL
ou base
é diferente de zero e menos que 2 ou maior que 36, errno
é definido como EINVAL
.
Para obter mais informações sobre códigos de retorno, confira errno
, _doserrno
, _sys_errlist
e _sys_nerr
.
Comentários
A função _strtoi64
converte strSource
para um __int64
. Ambas as funções param de ler a cadeia de caracteres strSource
no primeiro caractere que não reconhecem como parte de um número. Pode ser o caractere nulo de terminação ou pode ser o primeiro caractere numérico superior ou igual a base
. _wcstoi64
é uma versão de caractere largo de _strtoi64
; seu argumento strSource
é uma cadeia de caracteres largos. Caso contrário, essas funções se comportam de forma idêntica.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar isso, confira Estado global no CRT.
Mapeamentos de rotina de texto genérico
Rotina TCHAR.H |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcstoi64 |
_strtoi64 |
_strtoi64 |
_wcstoi64 |
_tcstoi64_l |
_strtoi64_l |
_strtoi64_l |
_wcstoi64_l |
A configuração da categoria LC_NUMERIC
da localidade determina o reconhecimento do caractere fracionário em strSource
; para mais informações, confira setlocale
. As funções sem o sufixo _l
usam a localidade atual; _strtoi64_l
e _wcstoi64_l
são idênticas à função correspondente sem o sufixo _l
, exceto por usarem o parâmetro de localidade informado. Para obter mais informações, consulte Localidade.
Se endptr
não for NULL
, um ponteiro para o caractere que parou a verificação será armazenado no local apontado por endptr
. Se nenhuma conversão pode ser executada (Nenhum dígito válido foi encontrado ou uma base inválida foi especificada), o valor de strSource
é armazenado no local apontado pela endptr
.
_strtoi64
espera que strSource
aponte para uma cadeia de caracteres do seguinte formato:
[
whitespace
] [{+
|-
}] [0
[{X
|x
}]] []digits
|letters
Um whitespace
pode consistir de caracteres de espaço ou tabulação, que são ignorados. digits
é um ou mais dígitos decimais. letters
são uma ou mais das letras 'a' a 'z' (ou 'A' a 'Z'). O primeiro caractere que não é adequado a esse formato interrompe a verificação. Se base
estiver entre 2 e 36, ele será usado como a base do número. Se base
é 0, os caracteres inicias da cadeia de caracteres apontada por strSource
são usados para determinar a base. Se o primeiro caractere for '0' e o segundo caractere não for 'x' nem '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 de '1' até '9', a cadeia de caracteres será interpretada como um inteiro hexadecimal. As letras 'a' a 'z' (ou 'A' a 'Z') recebem os valores 10 a 35; somente são permitidas letras cujos valores atribuídos são menores que base
. O primeiro caractere fora do intervalo da base interrompe o exame. Por exemplo, se base
é 0 e o primeiro caractere verificado é '0', é considerado um inteiro octal e um caractere '8' ou '9' interromperá a verificação.
Requisitos
Função | Cabeçalho necessário |
---|---|
_strtoi64 , _strtoi64_l |
<stdlib.h> |
_wcstoi64 , _wcstoi64_l |
<stdlib.h> ou <wchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Confira também
Conversão de dados
Localidade
localeconv
setlocale
, _wsetlocale
String para funções de valor numérico
strtod
, _strtod_l
, wcstod
, _wcstod_l
strtoul
, _strtoul_l
, wcstoul
, _wcstoul_l
atof
, _atof_l
, _wtof
, _wtof_l