Referencia de programación: conversión de cadenas a números enteros en lenguaje C

En lenguaje C, existen dos métodos principales para convertir una cadena en un número entero: atoi() y strtol().

1, tráiler()

Sintaxis: 

int atoi(const char *cadena);

El archivo de encabezado incluido es: stdlib.h

Se ignoran los espacios en blanco al comienzo de la cadena dada, comenzando desde el carácter posterior al espacio hasta que se encuentra el primer carácter no numérico.

El valor de retorno es el resultado convertido.

ejemplo:

#incluir <stdio.h>

#incluir <stdlib.h>

#incluir <cadena.h>

int principal (vacío)

{

    valor int;

    char cadena[20];

    strcpy(cadena,"123");

    valor = atoi(cadena);

    printf("Valor de cadena = %s, Valor int = %d\n", str, valor);

    retorno(0);

}

Producción:

valor de cadena = 123, valor entero = 123

Devuelve 0 si falla la conversión.

2,strtol()

Sintaxis:

long int strtol(const char *string, char **laststr,int basenumber);

El archivo de encabezado incluido es: stdlib.h

Convierte una cadena en un entero largo. Se ignoran los espacios en blanco al principio de la cadena. La conversión se detiene cuando se encuentra el primer carácter no numérico.

El primer parámetro es la cadena a convertir, el segundo es la posición de la cadena cuando se detiene la conversión de salida, y el tercero es la base utilizada, el rango es 2 ~ 36

#incluir <stdio.h>

#incluir <stdlib.h>

#incluir <cadena.h>

int principal (vacío) {

    char cadena[10];

    carácter *ptr;

    valor largo;

    strcpy(cadena, "123");

    valor = strtol(str, &ptr, 10);

    printf("decimal %ld\n", valor);

    devolver 0;

}

Producción:

decimal 123

Devuelve 0 si falla la conversión.

Si es hexadecimal, use las letras A~F para representar 10~15.

Si 17 está prohibido, utilice las letras A~G para representar 10~16.

Si está prohibido, ingrese las cadenas "FFF", "0xFFF" y "0XFFF", el resultado es el mismo.

Y atoi es equivalente a: (int) strtol (str, (char **) NULL, 10).

3. Algunos otros métodos

Hay algunas otras funciones como strtoumax, strtoimax, strtonum.

Sin embargo, estas funciones pueden tener problemas con la migración y no todos los compiladores de C las admiten.

referencia:

Convertir una cadena a entero en C | Pila de Delft

Supongo que te gusta

Origin blog.csdn.net/guoqx/article/details/125308911
Recomendado
Clasificación