Convierte entero a carácter en C

Satishkumar Bharadwaj 12 octubre 2023
  1. Agrega '0' para convertir int a char en C
  2. Asigna un valor int a un valor char para convertir int a char en C
  3. Utiliza la función sprintf() para convertir int a char en C
  4. Conclusión
Convierte entero a carácter en C

La conversión de un entero a un carácter en el lenguaje de programación C puede ser esencial en varios escenarios. Los caracteres en C se representan como valores ASCII, lo que hace relativamente sencillo realizar esta conversión.

Este tutorial explora varios métodos para convertir un entero a un carácter en C, desde una simple adición hasta la conversión explícita de tipos y la utilización de la función sprintf().

Agrega '0' para convertir int a char en C

El valor ASCII de '0' es 48. Por lo tanto, al agregar su valor a un entero se convertirá en el carácter correspondiente.

Aquí tienes un programa completo en C que demuestra este método:

#include <stdio.h>
int main(void) {
  int number = 71;

  char charValue = number + '0';
  printf("The character value is: %c", charValue);

  return 0;
}

Resultado:

The character value is: w

Sabemos que '0' tiene un valor ASCII de 48, y al sumar 71 a 48 se obtiene 119. En el conjunto de caracteres ASCII, el valor 119 corresponde al carácter w.

Por lo tanto, la salida del programa muestra el valor del carácter w.

Además, para convertir enteros en el rango de 0 a 9 a caracteres, podemos utilizar el mismo enfoque:

#include <stdio.h>
int main(void) {
  int number = 7;
  char charValue = number + '0';
  printf("The value is: %c", charValue);
  return 0;
}

Resultado:

The value is: 7

Aquí, el código declara una variable de tipo carácter llamada charValue y calcula su valor al agregar el entero almacenado en number al valor ASCII de '0'.

En C, los caracteres se representan como enteros basados en la codificación ASCII, por lo que esta operación convierte efectivamente el entero 7 en el carácter '7'.

A continuación se muestra otro programa para convertir un valor entero a un carácter:

#include <stdio.h>

int main(void) {
  char charValue[] = "stringValueX";
  int anyNumber;
  for (anyNumber = 0; anyNumber < 10; ++anyNumber) {
    charValue[11] = anyNumber + '0';
    puts(charValue);
  }
  return 0;
}

Resultado:

stringValue0
stringValue1
stringValue2
stringValue3
stringValue4
stringValue5
stringValue6
stringValue7
stringValue8
stringValue9

El código proporcionado anteriormente comienza inicializando una matriz de caracteres llamada charValue con la cadena "stringValueX" y declara una variable entera llamada anyNumber.

Luego entra en un bucle for que itera de 0 a 9. Dentro del bucle, el código reemplaza el carácter en el índice 11 de charValue añadiendo el valor de anyNumber al valor ASCII de '0', sustituyendo efectivamente la X por números del 0 al 9.

La función puts(charValue) imprime el charValue modificado en cada iteración en líneas separadas. Como resultado, el programa genera una salida en la que se muestra "stringValueX" con la X reemplazada por los números del 0 al 9, cada uno en una línea separada.

Asigna un valor int a un valor char para convertir int a char en C

Otra forma de convertir un valor entero a un valor de carácter es asignando directamente el entero a una variable de tipo carácter. Se imprimirá el valor de carácter correspondiente al valor entero.

Aquí tienes un ejemplo:

#include <stdio.h>

int main(void) {
  int number = 65;
  char charvalue = number;

  printf("The character value: %c", charvalue);

  return 0;
}

Resultado:

The character value: A

También podemos utilizar una conversión explícita de tipos para convertir un entero en un carácter. Observa el código de ejemplo a continuación.

#include <stdio.h>
int main(void) {
  int number = 67;
  char charValue = (char)number;
  printf("The character value = %c", charValue);

  return 0;
}

Resultado:

The character value = C

Aquí, el programa lanza explícitamente el valor entero de number a un carácter utilizando (char) antes del nombre de la variable. Esta conversión de tipos le indica al compilador que trate number como un carácter.

Utiliza la función sprintf() para convertir int a char en C

La función sprintf() funciona de la misma manera que la función printf(), pero en lugar de enviar la salida a la consola, devuelve la cadena formateada. Esto nos permite convertir un entero a un carácter y almacenarlo en una cadena.

Sintaxis de sprintf()

int sprintf(char *strValue, const char *format, [ arg1, arg2, ... ]);
  • strValue es un puntero al tipo de datos char.
  • format se utiliza para mostrar el tipo de salida junto con el marcador de posición.
  • [arg1,arg2,...] son los entero(s) que se van a convertir.

La función escribe los datos en la cadena apuntada por strValue y devuelve el número de caracteres escritos en strValue, excluyendo el carácter nulo. El valor de retorno generalmente se descarta.

Si ocurre algún error durante la operación, devuelve -1.

Aquí tienes un ejemplo:

#include <stdio.h>
int main(void) {
  int number = 72;
  char charValue[1];

  sprintf(charValue, "%c", number);
  printf("The character value = %s", charValue);

  return 0;
}

Resultado:

The character value = H

En este ejemplo, utilizamos sprintf() para convertir el entero 72 en el carácter H y lo almacenamos en la matriz charValue. Es importante asegurarse de que la matriz de caracteres (charValue) sea lo suficientemente grande para contener el char convertido.

Conclusión

En este tutorial, hemos explorado diversos enfoques para convertir enteros en caracteres en el lenguaje de programación C. Cada método ofrece sus ventajas y casos de uso, lo que te permite elegir el enfoque más adecuado según tus necesidades de programación específicas.

Artículo relacionado - C Integer

Artículo relacionado - C Char