Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Lenguaje C: función strtoul
(convertir cadena a larga sin firmar)
En el lenguaje de programación C, estructura función Convierta una cadena en un largo sin firmar.
La función strtoul omite todos los espacios en blanco al principio de la cadena, convierte los caracteres subsiguientes en parte de un número y se detiene en el primer carácter que no es un número.
sintaxis
La sintaxis de la función strtoul en lenguaje C es:
unsigned long int strtoul(const char *nptr, char **endptr, int base);
parámetro o parámetro
nptr Puntero a una cadena para convertir a un largo sin firmar. La función endptr strtoul usa esto para indicar dónde se detiene la transición. La función strtoul modifica endptr (si endptr no es un puntero nulo) para que endptr apunte al primer carácter no convertido. base La base del número a convertir. Si la base está entre 2 y 36, se usa como base del número. Si la base es cero, se supone que el número es decimal a menos que el número convertido comience con O (octal), Ox (hexadecimal) u OX (hexadecimal).
devolver los bienes
La función strtoul devuelve una representación entera larga sin signo de una cadena. La función strtoul omite todos los espacios en blanco al principio de la cadena, convierte los caracteres subsiguientes en parte de un número y se detiene en el primer carácter que no es un número.
Si la función strtoul convierte un valor que es demasiado grande o demasiado pequeño para convertir, almacena ERANGE en errono.
titulo requerido
En C, los archivos de encabezado requeridos por la función strtoul son:
#include <stdlib.h>
aplicar para
En C, la función strtoul está disponible en las siguientes versiones:
- ANSI/ISO 9899-1990
ejemplo de strtoul
Veamos un ejemplo para ver cómo usar la función strtoul en un programa C:
/* Example using strtoul by TechOnTheNet.com */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> int main(int argc, const char * argv[]) { /* Define temporary variables */ char value[10]; char *eptr; unsigned long result; /* Copy a value into the variable */ /* It's okay to have whitespace before the number */ strcpy(value, " 234"); /* Convert the provided value to a decimal unsigned long */ result = strtoul(value, &eptr, 10); /* If the result is 0, test for an error */ if (result == 0) { /* If a conversion error occurred, display a message and exit */ if (errno == EINVAL) { printf("Conversion error occurred: %dn", errno); exit(0); } /* If the value provided was out of range, display a warning message */ if (errno == ERANGE) printf("The value provided was out of rangen"); } /* Display the converted result */ printf("%lu decimaln", result); /* Copy a hexadecimal value into the variable */ strcpy(value, "0x5d9"); /* Convert the provided value to a hexadecimal unsigned long */ result = strtoul(value, &eptr, 16); /* If the result is 0, test for an error */ if (result == 0) { /* If a conversion error occurred, display a message and exit */ if (errno == EINVAL) { printf("Conversion error occurred: %dn", errno); exit(0); } /* If the value provided was out of range, display a warning message */ if (errno == ERANGE) printf("The value provided was out of rangen"); } /* Display the converted result */ printf("%lx hexadecimaln", result); return 0; }
Cuando se compila y ejecuta, esta aplicación generará:
234 decimal 5d9 hexadecimal
Función similar
Otras funciones de C similares a strtoul:
- funcion atoi
- función de atolón
- función strtod
- función strtol
ver también
Otras funciones de C que vale la pena mencionar cuando se trata de funciones de strtoul:
- función atof