Cómo convertir una cadena en un número entero en Do

Jinku Hu 12 octubre 2023
  1. atoi() Función para convertir una cadena en un entero en C
  2. strtol() Función para convertir una cadena en un entero en C
  3. strtoumax() Función para convertir una cadena a un entero en C
Cómo convertir una cadena en un número entero en Do

Este artículo presenta diferentes métodos en un lenguaje de programación de C para convertir una cadena en un número entero. Hay varios métodos para convertir una cadena en un número entero en C como atoi(), strtoumax() y strol().

atoi() Función para convertir una cadena en un entero en C

La función atoi() convierte una cadena en un entero en el lenguaje de programación C. La función atoi() descuida todos los espacios en blanco al principio de la cadena, convierte los caracteres después de los espacios en blanco, y luego se detiene cuando llega al primer carácter no numérico.

La función atoi() devuelve la representación entera de la cadena.

Necesitamos incluir el encabezado <stdlib.h> para usar la función atoi().

atoi() Sintaxis

int atoi(const char *str);

*str es un puntero a una cadena para ser convertido en un entero.

atoi() Códigos de ejemplo

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  int value;
  char str[20];
  strcpy(str, "123");
  value = atoi(str);
  printf("String value = %s, Int value = %d\n", str, value);

  return (0);
}

Resultado:

String value=123, Int value=123

strtol() Función para convertir una cadena en un entero en C

La función strtol() convierte una cadena en un entero largo en el lenguaje de programación C. La función strtol() omite todos los caracteres de espacio en blanco al principio de la cadena, después convierte los caracteres siguientes como parte del número, y luego se detiene cuando encuentra el primer carácter que no es un número.

La función strtol() devuelve la representación del valor entero largo de una cadena.

Necesitamos incluir la cabecera <stdlib.h> para usar la función atoi().

strtol() Sintaxis

long int strtol(const char *string, char **laststr, int basenumber);
  • *string es un puntero a una cadena para ser convertido en un entero largo.
  • **laststr es un puntero para indicar dónde se detiene la conversión.
  • basenumber es la base con el rango de [2, 36].
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  char str[10];
  char *ptr;
  long value;
  strcpy(str, " 123");
  value = strtol(str, &ptr, 10);
  printf("decimal %ld\n", value);

  return 0;
}

Resultado:

decimal 123

strtoumax() Función para convertir una cadena a un entero en C

La función strtoumax() interpreta el contenido de una cadena como en la forma de un número integral de la base especificada. Omite cualquier carácter de espacio en blanco hasta el primer carácter no blanco. Luego toma tantos caracteres como sea posible para formar una representación válida del número entero de la base y los convierte en un valor entero.

strtoumax() devuelve el valor entero correspondiente de una cadena. Esta función devuelve 0 si la conversión no se realiza con éxito.

strtoumax() Sintaxis

uintmax_t strtoumax(const char* string, char** last, int basenumber);
  • *string es un puntero a una cadena para ser convertido en un entero largo.
  • **last es un puntero para indicar dónde se detiene la conversión.
  • basenumber es la base con el rango de [2, 36].

strtoumax() Ejemplo

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
  char str[10];
  char *ptr;
  int value;
  strcpy(str, " 123");
  printf("The integer value:%d", strtoumax(str, &ptr, 10));

  return 0;
}

Resultado:

The long integer value: 123
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - C String

Artículo relacionado - C Integer