Lenguaje C: función strtoul (convertir cadena en entero largo sin signo)

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
(Visited 19 times, 1 visits today)