strtoll
, _strtoll_l
, , wcstoll
, _wcstoll_l
Convierte una cadena en un valor long long
.
Sintaxis
long long strtoll(
const char *strSource,
char **endptr,
int base
);
long long wcstoll(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
long long _strtoll_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
long long _wcstoll_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
strtoll
devuelve el valor que se representa en la cadena strSource
, excepto si la representación fuera a producir un desbordamiento; en ese caso, devuelve LLONG_MAX
o LLONG_MIN
. La función devuelve 0 si no se puede efectuar ninguna conversión. wcstoll
devuelve valores de manera parecida a strtoll
.
Los objetos LLONG_MAX
y LLONG_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 strtoll
convierte strSource
en long long
. 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
. wcstoll
es una versión con caracteres anchos de strtoll
; 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 cambiar este comportamiento, consulte Estado global en CRT.
Asignaciones de rutinas de texto genérico
Rutina TCHAR.H | _UNICODE y _MBCS no definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcstoll |
strtoll |
strtoll |
wcstoll |
_tcstoll_l |
_strtoll_l |
_strtoll_l |
_wcstoll_l |
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; _strtoll_l
y _wcstoll_l
son idénticas a las funciones correspondientes que no tienen el sufijo, 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
.
strtoll
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" detienen el análisis.
Requisitos
Routine | Encabezado necesario |
---|---|
strtoll , _strtoll_l |
<stdlib.h> |
wcstoll , _wcstoll_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
strtol
, wcstol
, , _strtol_l
, _wcstol_l
strtoul
, _strtoul_l
, , wcstoul
, _wcstoul_l
atof
, _atof_l
, , _wtof
, _wtof_l