strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l

Convierte una cadena en un valor entero del tipo de entero con signo compatible más grande.

Sintaxis

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
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

strtoimax devuelve el valor que se representa en la cadena strSource, excepto si la representación fuera a producir un desbordamiento; en ese caso, devuelve INTMAX_MAX o INTMAX_MIN y errno se establece en ERANGE. La función devuelve 0 si no se puede efectuar ninguna conversión. wcstoimax devuelve valores de manera parecida a strtoimax.

INTMAX_MAX y INTMAX_MIN se definen en stdint.h.

Si strSource es NULL o base es distinto de cero y menor que 2 o mayor que 36, errno se establece en EINVAL.

Para obtener más información sobre los códigos de retorno, vea errno, _doserrno, _sys_errlist y _sys_nerr.

Comentarios

La función strtoimax convierte strSource en un objeto intmax_t. La versión con caracteres anchos de strtoimax es wcstoimax; su argumento strSource es una cadena de caracteres anchos. Por lo demás, estas funciones se comportan exactamente igual. Ambas funciones dejan de leer la cadena strSource en el primer carácter que no reconocen como parte de un número. Puede ser el carácter nulo de terminación o puede ser el primer carácter numérico mayor o igual que base.

La configuración de categoría de la LC_NUMERIC configuración regional determina el reconocimiento del carácter radix en strSource; para obtener más información, vea setlocale, _wsetlocale. Las funciones que no tienen el sufijo _l usan la configuración regional actual; _strtoimax_l y _wcstoimax_l son idénticas a las funciones correspondientes que no tienen el sufijo _l, salvo que usan la configuración regional que se pasa. Para obtener más información, vea Locale.

Si endptr no NULLes , un puntero al carácter que detuvo el examen se almacena en la ubicación a endptrla que apunta . Si no se puede efectuar ninguna conversión (no se encontraron dígitos válidos o se especificó una base no válida), el valor de strSource se almacena en la ubicación a la que señala endptr.

Asignaciones de rutinas de texto genérico

Rutina TCHAR.H _UNICODE y _MBCS no definidos _MBCS definido _UNICODE definido
_tcstoimax strtoimax strtoimax wcstoimax
_tcstoimax_l strtoimax_l _strtoimax_l _wcstoimax_l

strtoimax espera que strSource señale a una cadena con el formato siguiente:

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

whitespace puede estar formado por caracteres de espacio y tabulación, que se omiten; digits es uno o varios dígitos decimales; letters es uno o varias letras de la «a» a la «z» (o de la «A» a la «Z»). El primer carácter que no se ajuste 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 strSource 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ían el análisis.

Requisitos

Routine Encabezado necesario
strtoimax, _strtoimax_l, wcstoimax, _wcstoimax_l <inttypes.h>

Para obtener más información sobre compatibilidad, consulte Compatibilidad.

Consulte también

Conversión de datos
Configuración regional
localeconv
setlocale, _wsetlocale
Funciones de cadena a 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