Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Converte cadeias de caracteres em um valor inteiro do maior tipo inteiro sem sinal com suporte.
Sintaxe
uintmax_t strtoumax(
const char *strSource,
char **endptr,
int base
);
uintmax_t _strtoumax_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
uintmax_t wcstoumax(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
uintmax_t _wcstoumax_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
Localidade a usar.
Valor retornado
strtoumax retornará o valor convertido, se houver ou UINTMAX_MAX no estouro.
strtoumax retorna 0 se nenhuma conversão pode ser realizada.
wcstoumax retorna valores de maneira semelhante a strtoumax. Para ambas as funções, errno será definido como ERANGE se ocorrer um estouro ou estouro negativo.
Para obter mais informações sobre códigos de retorno, confira errno, _doserrno, _sys_errlist e _sys_nerr.
Comentários
Cada uma dessas funções converte a cadeia de caracteres de entrada strSource em um valor inteiro uintmax_t.
strtoumax interrompe a leitura da cadeia de caracteres strSource no primeiro caractere que ela não puder reconhecer 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 LC_NUMERIC da localidade determina o reconhecimento do caractere base em strSource. Para obter mais informações, consulte setlocalee _wsetlocale.
strtoumax e wcstoumax usam a localidade atual; _strtoumax_l e _wcstoumax_l são idênticos, com exceção de que usam a localidade passada. 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.
A versão de caractere largo de strtoumax é wcstoumax; seu argumento strSource é uma cadeia de caracteres largos. Caso contrário, essas funções se comportam de forma idêntica.
Mapeamentos de rotina de texto genérico
| Rotina TCHAR.H |
_UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
|---|---|---|---|
_tcstoumax |
strtoumax |
strtoumax |
wcstoumax |
_tcstoumax_l |
strtoumax_l |
_strtoumax_l |
_wcstoumax_l |
strtoumax 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 for 0, os caracteres iniciais da cadeia de caracteres apontados por strSource serã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.
strtoumax Permite um prefixo de sinal de mais (+) ou sinal de menos (-); um sinal de menos à esquerda indica que o valor de retorno é o complemento de dois do valor absoluto da cadeia de caracteres convertida.
Requisitos
| Rotina | Cabeçalho necessário |
|---|---|
strtoumax, wcstoumax, , _strtoumax_l_wcstoumax_l |
<inttypes.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
Confira o exemplo de strtod.
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
strtoimax, _strtoimax_l, , wcstoimax_wcstoimax_l
strtol, wcstol, , _strtol_l_wcstol_l
strtoul, _strtoul_l, , wcstoul_wcstoul_l
strtoll, _strtoll_l, , wcstoll_wcstoll_l
atof, _atof_l, , _wtof_wtof_l