strtoul
, _strtoul_l
, , wcstoul
, _wcstoul_l
Convierte cadenas en un valor entero largo sin signo.
Sintaxis
unsigned long strtoul(
const char *strSource,
char **endptr,
int base
);
unsigned long _strtoul_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
unsigned long wcstoul(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
unsigned long _wcstoul_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
strtoul
devuelve el valor convertido, si existe, o ULONG_MAX
si se produce un desbordamiento. strtoul
devuelve 0 si no se puede realizar ninguna conversión. wcstoul
devuelve valores de manera parecida a strtoul
. Para ambas funciones, errno
se establece en ERANGE
si se produce un desbordamiento o subdesbordamiento.
Para obtener más información sobre los códigos de retorno, vea errno
, _doserrno
, _sys_errlist
y _sys_nerr
.
Comentarios
Cada una de estas funciones convierte la cadena de entrada strSource
en un unsigned long
.
strtoul
deja de leer la cadena strSource
en el primer carácter que no reconoce como parte de un número. Este carácter puede ser la terminación NULL
o puede ser el primer carácter numérico mayor o igual que base
. El valor de la categoría LC_NUMERIC
de la configuración regional determina el reconocimiento del carácter base de strSource
. Para más información, consulte setlocale
. strtoul
y wcstoul
usan la configuración regional actual; _strtoul_l
y _wcstoul_l
son idénticos, 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
.
wcstoul
es una versión con caracteres anchos de strtoul
; 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 |
---|---|---|---|
_tcstoul |
strtoul |
strtoul |
wcstoul |
_tcstoul_l |
strtoul_l |
_strtoul_l |
_wcstoul_l |
strtoul
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 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 un entero octal. Si el primer carácter es 0 y el segundo es x
o X
, la cadena se interpreta como un 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 sean 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. strtoul
permite un prefijo de signo más (+
) o menos (-
); un signo menos inicial indica que el valor devuelto es negativo.
Requisitos
Routine | Encabezado necesario |
---|---|
strtoul |
<stdlib.h> |
wcstoul |
<stdlib.h> o <wchar.h> |
_strtoul_l |
<stdlib.h> |
_wcstoul_l |
<stdlib.h> o <wchar.h> |
Para obtener más información sobre compatibilidad, consulte Compatibilidad.
Ejemplo
Vea el ejemplo de strtod
.
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
atof
, _atof_l
, , _wtof
, _wtof_l