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 strtol
(convertir cadena a larga)
En el lenguaje de programación C, función strtol Convierte una cadena en un entero largo.
La función strtol omite todos los caracteres de espacio en blanco al principio de la cadena, convierte los caracteres posteriores para que formen 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 strtol en lenguaje C es:
long int strtol(const char *nptr, char **endptr, int base);
parámetro o parámetro
nptr Puntero a la cadena que se va a convertir en long. Lo utiliza la función endptr strtol para indicar dónde se detiene la conversión. La función strtol 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 strtol devuelve una representación de entero largo de una cadena. La función strtol omite todos los caracteres de espacio en blanco al principio de la cadena, convierte los caracteres posteriores para que formen parte de un número y se detiene en el primer carácter que no es un número.
Si la función strtol convierte un valor que es demasiado grande o demasiado pequeño para convertir, almacena ERANGE en errno. Si el valor es demasiado grande para convertirlo, la función devuelve un valor LONG_MAX. Si el valor es demasiado pequeño para convertir, la función devolverá un valor LONG_MIN.
titulo requerido
En C, los archivos de encabezado requeridos por la función strtol son:
#include <stdlib.h>
aplicar para
En C, la función strtol está disponible en las siguientes versiones:
- ANSI/ISO 9899-1990
ejemplo de strtol
Veamos un ejemplo de cómo usar la función strtol en un programa C:
/* Example using strtol by TechOnTheNet.com */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <limits.h> int main(int argc, const char * argv[]) { /* Define temporary variables */ char value[10]; char *eptr; long result; /* Copy a value into the variable */ /* It's okay to have whitespace before the number */ strcpy(value, " 123"); /* Convert the provided value to a decimal long */ result = strtol(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 result is equal to LONG_MIN or LONG_MAX, test for a range error */ if (result == LONG_MIN || result == LONG_MAX) { /* 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("%ld decimaln", result); /* Copy a hexadecimal value into the variable */ strcpy(value, "0x19e"); /* Convert the provided value to a decimal long */ result = strtol(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 result is equal to LONG_MIN or LONG_MAX, test for a range error */ if (result == LONG_MIN || result == LONG_MAX) { /* 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á:
123 decimal 19e hexadecimal
Función similar
Otras funciones de C similares a la función strtol:
- funcion atoi
- función de atolón
- función strtod
- función strtoll
- función strtoul
ver también
Otras funciones de C que vale la pena mencionar cuando se trata de funciones strtol:
- función atof