Compartir vía


_strtoi64, _wcstoi64, _strtoi64_l, _wcstoi64_l

Convierte una cadena en un valor __int64.

Sintaxis

__int64 _strtoi64(
   const char *strSource,
   char **endptr,
   int base
);
__int64 _wcstoi64(
   const wchar_t *strSource,
   wchar_t **endptr,
   int base
);
__int64 _strtoi64_l(
   const char *strSource,
   char **endptr,
   int base,
   _locale_t locale
);
__int64 _wcstoi64_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

_strtoi64 devuelve el valor que se representa en la cadena strSource, excepto cuando la representación produciría desbordamiento, en cuyo caso devuelve _I64_MAX o _I64_MIN. La función devuelve 0 si no se puede realizar ninguna conversión. _wcstoi64 devuelve valores de manera parecida a _strtoi64.

Los objetos _I64_MAX y _I64_MIN se definen en LIMITS.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 _strtoi64 convierte strSource en un objeto __int64. Ambas funciones dejan de leer la cadena strSource en el primer carácter que no reconocen 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. _wcstoi64 es una versión con caracteres anchos de _strtoi64; su argumento strSource es una cadena de caracteres anchos. Por lo demás, estas funciones se comportan exactamente igual.

De manera predeterminada, el estado global de esta función está limitado a la aplicación. Para cambiarlo, consulte Estado global en CRT.

Asignaciones de rutinas de texto genérico

Rutina TCHAR.H _UNICODE y _MBCS no definidos _MBCS definido _UNICODE definido
_tcstoi64 _strtoi64 _strtoi64 _wcstoi64
_tcstoi64_l _strtoi64_l _strtoi64_l _wcstoi64_l

El valor de la categoría LC_NUMERIC de la configuración regional determina el reconocimiento del carácter de base en strSource; para obtener más información, consulte setlocale. Las funciones sin el sufijo _l usan la configuración regional actual; _strtoi64_l y _wcstoi64_l son idénticas a la función correspondiente sin el sufijo _l, salvo que usan la configuración regional que se pasa. Para obtener más información, vea Locale.

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 strSource se almacena en la ubicación a la que señala endptr.

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

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

Un elemento whitespace puede estar formado por caracteres de espacio y tabulación, que se omiten. digits es uno o más dígitos decimales. letters son una o varias de las letras "a" a "z" (o "A" a "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án el análisis.

Requisitos

Función Encabezado necesario
_strtoi64, _strtoi64_l <stdlib.h>
_wcstoi64, _wcstoi64_l <stdlib.h> o <wchar.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
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l