Lenguaje C: función strtoll (convertir String a Long Long)

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 strtoll
(Convertir cadena a larga larga)

En el lenguaje de programación C, función strtoll Convertir cadena a larga larga.

La función strtoll omite todos los espacios en blanco al principio de la cadena, convierte los caracteres subsiguientes 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 strtoll en lenguaje C es:

long long strtoll(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 strtoll para indicar dónde se detiene la conversión. La función strtoll modifica endptr (si endptr no es un puntero nulo) para que endptr apunte al primer carácter no convertido. base Es la base del número que se está convirtiendo. 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 strtoll devuelve la representación long long de una cadena. La función strtoll omite todos los espacios en blanco al principio de la cadena, convierte los caracteres subsiguientes 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 strtoll convierte un valor que es demasiado grande o demasiado pequeño para convertir, almacena ERANGE en errono. Si el valor es demasiado grande para convertirlo, la función devuelve un valor LLONG_MAX. Si el valor es demasiado pequeño para convertir, la función devolverá un valor LLONG_MIN.

titulo requerido

En C, los archivos de encabezado requeridos por la función strtoll son:

#include <stdlib.h>

aplicar para

En C, la función strtoll está disponible en las siguientes versiones:

  • ANSI/ISO 9899-1990

ejemplo de calle

Veamos un ejemplo de cómo usar la función strtoll en un programa C:

/* Example using strtoll 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 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 long long */
    result = strtoll(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 LLONG_MIN or LLONG_MAX, test for a range error */
    if (result == LLONG_MIN || result == LLONG_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("%lld decimaln", result);

    /* Copy a hexadecimal value into the variable */
    strcpy(value, "0x2af");

    /* Convert the provided value to a decimal long long */
    result = strtoll(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 LLONG_MIN or LLONG_MAX, test for a range error */
    if (result == LLONG_MIN || result == LLONG_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("%llx hexadecimaln", result);

    return 0;
}

Cuando se compila y ejecuta, esta aplicación generará:

234 decimal
2af hexadecimal

Función similar

Otras funciones de C similares a la función strtoll:

  • funcion atoi
  • función de atolón
  • función strtod
  • función strtol
  • función strtoul

ver también

Otras funciones de C que vale la pena mencionar cuando se trata de la función strtoll:

  • función atof
(Visited 20 times, 1 visits today)