_strtoui64
, _wcstoui64
, , _strtoui64_l
, _wcstoui64_l
Convierte una cadena en un valor unsigned __int64
.
Sintaxis
unsigned __int64 _strtoui64(
const char *strSource,
char **endptr,
int base
);
unsigned __int64 _wcstoui64(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
unsigned __int64 _strtoui64_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
unsigned __int64 _wcstoui64_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
_strtoui64
devuelve el valor que se representa en la cadena strSource
, excepto si la representación fuera a producir un desbordamiento, en cuyo caso devuelve _UI64_MAX
. _strtoui64
devuelve 0 si no se puede realizar ninguna conversión.
_UI64_MAX
está definido 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 _strtoui64
convierte strSource
en un objeto unsigned __int64
. _wcstoui64
es una versión con caracteres anchos de _strtoui64
; 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 tratarse del carácter nulo final o del primer carácter numérico mayor o igual que base
.
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 |
---|---|---|---|
_tcstoui64 |
_strtoui64 |
_strtoui64 |
_wcstoui64 |
_tcstoui64_l |
_strtoui64_l |
_strtoui64_l |
_wcstoui64_l |
El valor de la categoría LC_NUMERIC
de la configuración regional actual determina el reconocimiento del carácter de base de strSource
. Para obtener más información, vea setlocale
. Las funciones sin el sufijo _l
usan la configuración regional actual; _strtoui64_l
y _wcstoui64_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 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
.
_strtoui64
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 |
---|---|
_strtoui64 |
<stdlib.h> |
_wcstoui64 |
<stdlib.h> o <wchar.h> |
_strtoui64_l |
<stdlib.h> |
_wcstoui64_l |
<stdlib.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
// crt_strtoui64.c
#include <stdio.h>
unsigned __int64 atoui64(const char *szUnsignedInt) {
return _strtoui64(szUnsignedInt, NULL, 10);
}
int main() {
unsigned __int64 u = atoui64("18446744073709551615");
printf( "u = %I64u\n", u );
}
u = 18446744073709551615
Vea 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