Compartir a través de


strtol, wcstol, _strtol_l, _wcstol_l

Convierte cadenas en un valor entero largo sin signo.

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

Parámetros

  • nptr
    Cadena terminada en NULL que se va a convertir.

  • endptr
    Puntero al carácter que detiene el examen.

  • base
    Base numérica que se va a usar.

  • locale
    Configuración regional que se va a usar.

Valor devuelto

strtol devuelve el valor que se representa en la cadena nptr, excepto cuando la representación produciría desbordamiento, en cuyo caso devuelve LONG_MAX o LONG_MIN. strtol devuelve 0 si no se puede realizar ninguna conversión. wcstol devuelve valores de manera parecida a strtol. Para ambas funciones, errno se establece en ERANGE si se produce un desbordamiento o subdesbordamiento.

Vea _doserrno, errno, _sys_errlist y _sys_nerr para obtener más información sobre estos y otros códigos de retorno.

Comentarios

La función strtol convierte nptr en long. strtol deja de leer la cadena nptr en el primer carácter que no reconoce como parte de un número. Puede tratarse del carácter nulo final o del primer carácter numérico mayor o igual que base.

wcstol es una versión con caracteres anchos de strtol; su argumento nptr es una cadena de caracteres anchos. Por lo demás, estas funciones se comportan exactamente igual.

Asignaciones de rutina de texto genérico

Rutina TCHAR.H

_UNICODE y _MBCS no definidos

_MBCS definido

_UNICODE definido

_tcstol

strtol

strtol

wcstol

_tcstol_l

_strtol_l

_strtol_l

_wcstol_l

El valor de la categoría LC_NUMERIC de la configuración regional actual determina el reconocimiento de caracteres de base en nptr*.* Para obtener más información, vea setlocale. Las funciones sin el sufijo _l usan la configuración regional actual; _strtol_l y _wcstol_l son idénticas a las funciones correspondientes sin el sufijo _l, salvo que usan la configuración regional que se pasa. Para obtener más información, vea Configuración regional.

Si endptr no es NULL, se almacena un puntero al carácter que detuvo el análisis en la ubicación a la que señala endptr. Si no se puede realizar ninguna conversión (no se encontraron dígitos válidos o se especificó una base no válida), el valor de nptr se almacena en la ubicación a la que señala endptr.

strtol espera que nptr señale a una cadena con el formato siguiente:

[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]

whitespace puede estar formado por caracteres de espacio y tabulación, que se omiten; digits es uno o varios dígitos decimales. El primer carácter que no se ajusta a este formato detiene el análisis. Si base está entre 2 y 36, se usa como base del número. Si base es 0, los caracteres iniciales de la cadena a la que apunta nptr se usan para determinar la base. Si el primer carácter es 0 y el segundo carácter no es 'x' ni 'X', la cadena se interpreta como entero octal. Si el primer carácter es 0 y el segundo carácter es 'x' o 'X', la cadena se interpreta como entero hexadecimal. Si el primer carácter está entre 1 y 9, la cadena se interpreta como entero decimal. A las letras de la 'a' a la 'z' (o de la 'A' a la 'Z') se les asignan los valores del 10 al 35. Solo se admiten las letras cuyos valores asignados son menores que base. El primer carácter que está fuera del intervalo de la base detiene el análisis. Por ejemplo, si base es 0 y el primer carácter examinado es "0", se supone un entero octal y los caracteres "8" o "9 detendrán el análisis.

Requisitos

Rutina

Encabezado necesario

strtol

<stdlib.h>

wcstol

<stdlib.h> o <wchar.h>

_strtol_l

<stdlib.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

Ejemplo

Vea el ejemplo de strtod.

Equivalente en .NET Framework

System::Convert::ToInt64

Vea también

Referencia

Conversión de datos

Configuración regional

localeconv

setlocale, _wsetlocale

Funciones de conversión de valores de cadena en valores numéricos

strtod, _strtod_l, wcstod, _wcstod_l

strtoul, _strtoul_l, wcstoul, _wcstoul_l

atof, _atof_l, _wtof, _wtof_l