Partilhar via


strtol, wcstol, _strtol_l, _wcstol_l

Converter cadeias de caracteres em um long valor inteiro.

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 para converter.

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

base
Base numérica a utilizar.

locale
Localidade a ser usada.

Valor de retorno

strtol, wcstol, _strtol_l, e _wcstol_l devolvem o valor representado em string. Eles retornam 0 se nenhuma conversão for possível. Quando a representação causaria um transbordamento, eles retornam LONG_MAX ou LONG_MIN.

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

Observações

As strtolfunções , wcstol, _strtol_l, e _wcstol_l convertem-se string em .long Eles param de ler string no primeiro caractere não reconhecido como parte de um número. Pode ser o caractere terminativo-nulo, ou o primeiro caractere alfanumérico maior ou igual a base.

wcstol e _wcstol_l são versões de caracteres largos de strtol e _strtol_l. Seu string argumento é uma cadeia de caracteres largos. Estas funções comportam-se de forma idêntica e de strtol_strtol_l outra forma. A configuração de categoria da LC_NUMERIC localidade determina o reconhecimento do caractere radix (o marcador fracionário ou ponto decimal) em string. As funções strtol e wcstol usar a localidade atual. _strtol_l e _wcstol_l use a localidade passada em vez disso. Para obter mais informações, consulte setlocale e Localidade.

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

strtol string espera apontar para uma cadeia de caracteres do seguinte formulário:

[whitespace] [{+ | -}] [0 [{Xx | }]] []alphanumerics

Os colchetes ([ ]) envolvem elementos opcionais. Chaves encaracoladas e uma barra vertical ({ | }) cercam alternativas para um único elemento. whitespace pode consistir em espaço e caracteres de tabulação, que são ignorados. alphanumericssão dígitos decimais ou as letras 'a' através (ou 'A' através 'Z''z' ). O primeiro caractere que não se encaixa nesse formulário interrompe a verificação. Se base estiver entre 2 e 36, então é usado como base do número. Se base for 0, os caracteres iniciais da cadeia de caracteres apontada por string são usados para determinar a base. Se o primeiro caractere for 0, e o segundo caractere não 'x' for ou 'X', a cadeia de caracteres será interpretada como um inteiro octal. Se o primeiro caractere é '0' e o segundo caractere é 'x' ou 'X', a cadeia de caracteres é interpretada como um inteiro hexadecimal. Se o primeiro caractere for '1' através de '9', a cadeia de caracteres será interpretada como um inteiro decimal. Às letras 'a' através 'z' (ou 'A' através 'Z') são atribuídos os 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 para a verificação. Por exemplo, suponha que string comece com "01". Se base for 0, o scanner assume que é um inteiro octal. Um '8' caractere ou interrompe '9' 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

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

Requerimentos

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

As _strtol_l funções e _wcstol_l são específicas da Microsoft, não fazem parte da biblioteca Standard C. Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

Exemplo

Veja o exemplo para strtod.

Ver também

Conversão de dados
Localidade
localeconv
setlocale, _wsetlocale
Funções de cadeia de caracteres para valores numéricos
strtod, _strtod_l, wcstod, _wcstod_l
strtoll, _strtoll_l, wcstoll, _wcstoll_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l