Compartilhar via


strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l

Converte uma cadeia de caracteres em um valor inteiro do maior tipo de inteiro com sinal.

Sintaxe

intmax_t strtoimax(
   const char *strSource,
   char **endptr,
   int base
);
intmax_t wcstoimax(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
intmax_t _strtoimax_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
intmax_t _wcstoimax_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 o exame.

base
O número base a ser usado.

locale
A localidade a ser usada.

Valor retornado

strtoimax retorna o valor representado em uma cadeia de caracteres strSource, exceto quando a representação causaria um estouro — nesse caso, retorna INTMAX_MAX ou INTMAX_MIN e errno é definido para ERANGE. A função retorna 0, se nenhuma conversão pode ser realizada. wcstoimax retorna valores de maneira semelhante a strtoimax.

INTMAX_MAX e INTMAX_MIN são definidos em stdint.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 strtoimax converte strSource para um intmax_t. A versão de caractere largo de strtoimax é wcstoimax; seu argumento strSource é uma cadeia de caracteres largos. Caso contrário, essas funções se comportam de forma idêntica. 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 maior ou igual a base.

A configuração de categoria da LC_NUMERIC localidade determina o reconhecimento do caractere de base em strSource; para obter mais informações, consulte setlocale, _wsetlocale. As funções que não têm o sufixo _l usam a localidade atual; _strtoimax_l e _wcstoimax_l são idênticas as funções correspondentes que não têm o sufixo _l, exceto que, ao invés disso, usam o parâmetro de localidade informado. Para obter mais informações, consulte Localidade.

Se endptr não NULLfor , um ponteiro para o caractere que interrompeu a verificação será 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 strSource será armazenado no local apontado por endptr.

Mapeamentos de rotina de texto genérico

Rotina TCHAR.H _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_tcstoimax strtoimax strtoimax wcstoimax
_tcstoimax_l strtoimax_l _strtoimax_l _wcstoimax_l

strtoimax espera que strSource aponte para uma cadeia de caracteres do seguinte formato:

[whitespace] [{+ | -}] [0 [{X | x }]] []digits | letters

Um whitespace pode consistir em caracteres de espaço e tabulação, que são ignorados; digits são 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' interromperia a verificação.

Requisitos

Rotina Cabeçalho necessário
strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l <inttypes.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
strtol, wcstol, _strtol_l, _wcstol_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
strtoumax, _strtoumax_l, wcstoumax, _wcstoumax_l
atof, _atof_l, _wtof, _wtof_l