¿Cómo convertir entero a char en C?

¿Cómo convertir entero a char en C?

Un carácter en C ya es un número (el código ASCII del carácter), no se requiere conversión.

Si desea convertir un dígito al carácter correspondiente, simplemente puede agregar ‘0’:

c = i +'0'; 

El ‘0’ es un carácter en la tabla ASCll.

Puedes probar la función de biblioteca atoi (). También sscanf () y sprintf () ayudarían.

Aquí hay un pequeño ejemplo para mostrar la conversión de un entero a una cadena de caracteres:

 main() { int i = 247593; char str[10]; sprintf(str, "%d", i); // Now str contains the integer as characters } 

Aquí para otro ejemplo

 #include  int main(void) { char text[] = "StringX"; int digit; for (digit = 0; digit < 10; ++digit) { text[6] = digit + '0'; puts(text); } return 0; } /* my output String0 String1 String2 String3 String4 String5 String6 String7 String8 String9 */ 

Simplemente asigne el int a una variable char .

 int i = 65; char c = i; printf("%c", c); //prints A 

para convertir el entero a char, solo 0 a 9 se convertirá ya que 0s el valor ascii es 48, por lo que debemos agregar su valor para convertirlo en el carácter deseado, por lo tanto

 int i=5; char c = i+'0'; 

Para convertir int en uso de char:

 int a=8; char c=a+'0'; printf("%c",c); //prints 8 

Para convertir char a int use:

 char c='5'; int a=c-'0'; printf("%d",a); //prints 5 
  void main () { int temp,integer,count=0,i,cnd=0; char ascii[10]={0}; printf("enter a number"); scanf("%d",&integer); if(integer>>31) { /*CONVERTING 2's complement value to normal value*/ integer=~integer+1; for(temp=integer;temp!=0;temp/=10,count++); ascii[0]=0x2D; count++; cnd=1; } else for(temp=integer;temp!=0;temp/=10,count++); for(i=count-1,temp=integer;i>=cnd;i--) { ascii[i]=(temp%10)+0x30; temp/=10; } printf("\n count =%d ascii=%s ",count,ascii); }