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 NULL
es , un puntero al carácter que detuvo el examen se almacena en la ubicación a endptr
la 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