Compartilhar via


strtol, wcstol, _strtol_l, _wcstol_l

Converte uma cadeia de caracteres para um valor inteiro long.

Sintaxe

long strtol(
   const char *string,
   char **end_ptr,
   int base
);
long wcstol(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base
);
long _strtol_l(
   const char *string,
   char **end_ptr,
   int base,
   _locale_t locale
);
long _wcstol_l(
   const wchar_t *string,
   wchar_t **end_ptr,
   int base,
   _locale_t locale
);

Parâmetros

string
Cadeia de caracteres terminada em nulo a ser convertida.

end_ptr
Um parâmetro de saída, definido para apontar para o caractere após o último caractere interpretado. Ignorado, se NULL.

base
O número base a ser usado.

locale
Localidade a usar.

Retornar valor

strtol, wcstol, _strtol_l e _wcstol_l retornar o valor representado em string. Eles retornarão 0 se nenhuma conversão for possível. Quando a representação causa um estouro, ela retorna LONG_MAX ou LONG_MIN.

errno será definido como ERANGE se ocorrer um estouro ou estouro negativo. Está definido como EINVAL se string for NULL. Ou, se base for diferente de zero e menor que 2, ou maior que 36. Para obter mais informações sobre ERANGE, EINVAL e outros códigos de retorno, confira errno, _doserrno, _sys_errlist e _sys_nerr.

Comentários

As funções strtol, wcstol, _strtol_l e _wcstol_l são convertidas string em um long. Elas param de ler string no primeiro caractere não reconhecido como parte de um número. Pode ser o caractere nulo de terminação ou pode ser o primeiro caractere alfanumérico maior ou igual a base.

wcstole _wcstol_l são versões de caractere largo de strtol e _strtol_l. O argumento string delas é uma cadeia de caracteres largos. Caso contrário, essas funções se comportam de forma idêntica a strtol e _strtol_l. A configuração de categoria LC_NUMERIC da localidade determina o reconhecimento do caractere de base (o marcador fracionário ou ponto decimal) em string. As funções strtol e wcstol usam a localidade atual. _strtol_l e _wcstol_l usam a localidade passada em vez disso. Para obter mais informações, confira [setlocale] e Localidade.

Quando end_ptr é NULL, é ignorado. Caso contrário, um ponteiro para o caractere que parou a verificação é armazenado no local apontado por end_ptr. Nenhuma conversão será possível se nenhum dígito válido for encontrado ou uma base inválida for especificada. O valor de string é armazenado no local apontado por end_ptr.

strtol espera que string aponte para uma cadeia de caracteres do seguinte formato:

[whitespace] [{+ | -}] [0 [{ x | X }]] [alphanumerics]

Colchetes ([ ]) envolvem elementos opcionais. Chaves e uma barra vertical ({ | }) envolvem alternativas para um único elemento. whitespace pode consistir em caracteres de espaço e tabulação, que são ignorados. alphanumericssão dígitos decimais ou as letras 'a' através (ou 'A' através 'z''Z'de ). 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 inicias da cadeia de caracteres apontada por string 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' até 'z' (ou 'A' até 'Z') são atribuídas aos valores de 10 a 35. A verificação só permite letras cujos valores são menores que base. O primeiro caractere fora do intervalo da base interrompe o exame. Por exemplo, suponha que string comece com "01". Se base for 0, o verificador pressupõe que seja um inteiro octal. Um caractere '8' ou '9' interrompe a verificação.

Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.

Mapeamentos de rotina de texto genérico

Rotina TCHAR.H _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_tcstol strtol strtol wcstol
_tcstol_l _strtol_l _strtol_l _wcstol_l

Requisitos

Rotina Cabeçalho necessário
strtol <stdlib.h>
wcstol <stdlib.h> ou <wchar.h>
_strtol_l <stdlib.h>
_wcstol_l <stdlib.h> ou <wchar.h>

As funções _strtol_l e _wcstol_l são específicas da Microsoft, não fazem parte da biblioteca C padrão. 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
Cadeia de caracteres para funções de valor numérico
strtod, _strtod_l, wcstod, _wcstod_l
strtoll, _strtoll_l, wcstoll, _wcstoll_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l