¿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); }