Cómo convertir un entero en una cadena en C

Satishkumar Bharadwaj 12 octubre 2023
  1. sprintf() Función para convertir un entero a una cadena en C
  2. itoa() Función para convertir un entero en una cadena en C
Cómo convertir un entero en una cadena en C

Este tutorial introduce cómo convertir un entero en un valor de cadena en C. Hay diferentes métodos para la conversión de un entero en una cadena en C, como la función sprintf(), itoa().

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

Como su nombre lo indica, se utiliza para imprimir cualquier valor en una cadena. Esta función ofrece una manera fácil de convertir un entero en una cadena. Funciona de la misma manera que la función printf(), pero no imprime un valor directamente en la consola sino que devuelve una cadena formateada. El valor de retorno se descarta normalmente, pero si se produce un error durante la operación, devuelve -1.

sprintf() Sintaxis:

int sprintf(char *str, const char *format, [ arg1, arg2, ... ]);
  • str es un puntero a un tipo de datos char.
  • format se usa para mostrar el tipo de salida junto con el marcador de posición.
  • arg1, arg2 son números enteros para convertir en una cadena.

Código de ejemplo de sprintf() para convertir un entero en una cadena en C

#include <stdio.h>

int main(void) {
  int number;
  char text[20];

  printf("Enter a number: ");
  scanf("%d", &number);

  sprintf(text, "%d", number);

  printf("\nYou have entered: %s", text);

  return 0;
}

Resultado:

Enter a number: 20
You have entered: 20

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

itoa() es una función de casting de tipo en C. Esta función convierte un entero en una cadena de terminación nula. También puede convertir un número negativo.

itoa() Sintaxis

char* itoa(int num, char* buffer, int base)
  • num es un número entero.
  • buffer es un puntero a un tipo de datos de caracteres.
  • base es una base de conversión. Define un valor entero para convertirlo en un valor base y lo almacena en un buffer. Si la base es 10 y el valor es negativo, la cadena resultante precederá al signo menos (-).

Código de ejemplo de la función itoa() para convertir un entero en una cadena en C

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

int main(void) {
  int number, l;
  char string[20];

  printf("Enter a number: ");
  scanf("%d", &number);

  itoa(number, string, 10);

  printf("String value = %s\n", string);

  return 0;
}

Resultado:

Enter a number: 15
String value: 15
Advertencia
itoa() no es una función estándar de ANSI C. Puede que no funcione en su compilador GCC dependiendo de su plataforma.

Artículo relacionado - C Integer

Artículo relacionado - C String