En este post vas a aprender a convertir una cadena a un entero en C; es decir, convertir un string a un int o long; de manera que puedas usarlo como entero y no como cadena.

Para la conversión vamos a usar la función strtol. Si quieres hacer el proceso inverso, por favor mira cómo convertir un número a cadena en C.

Convertir cadena a entero en C

Lo único que necesitamos es invocar a la función strtol; la misma devolverá un long que podría ser convertido a int. El ejemplo más sencillo es el siguiente:

char *cadena = "2052";
int entero = (int) strtol(cadena, NULL, 10);

Los argumentos que toma strtol son, en orden:

  1. La cadena que vamos a convertir
  2. Un puntero que apuntará al lugar en donde la cadena hasta donde terminó de hacer la conversión, esto no es necesario así que lo dejamos en NULL.
  3. La base, que es base 10, decimal

La función devolverá un long que convertimos a un int.

Ejemplo completo

Convertir cadena a entero en C

El código queda así:

/**
 * Convertir cadena a número en C
 * @date 2019-12-21
 * @author parzibyte
 * https://parzibyte.me/blog/
*/
 * */
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    char *cadena = "2052";
    int entero = (int) strtol(cadena, NULL, 10);
    printf("Entero: %d. Entero + 1: %d", entero, entero + 1);
}

Estoy imprimiendo el número y sumando uno para que se note que realmente es un entero.

En mi blog puedes explorar más ejercicios de C.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto