如何在C中将整数转换为char?

时间:2010-02-17 09:03:08

标签: c

如何在C中将整数转换为char?

6 个答案:

答案 0 :(得分:76)

C中的字符已经是数字(字符的ASCII代码),不需要转换。

如果要将数字转换为相应的字符,只需添加“0”:

即可
c = i +'0';

'0'是ASCll表中的一个字符。

答案 1 :(得分:20)

您可以尝试atoi()库函数。 sscanf()和sprintf()也会有所帮助。

这是一个显示将整数转换为字符串的小例子:

main()
{
  int i = 247593;
  char str[10];

  sprintf(str, "%d", i);
  // Now str contains the integer as characters
} 

这是另一个例子

#include <stdio.h>

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
*/

答案 2 :(得分:13)

只需将int分配给char变量。

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

答案 3 :(得分:6)

将整数转换为char只有0到9将转换为0s ascii值为48所以我们必须添加其值以转换为所需的字符 因此

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

答案 4 :(得分:4)

要将int转换为char,请使用:

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

将char转换为int use:

char c='5';
int a=c-'0';
printf("%d",a);        //prints 5

答案 5 :(得分:1)

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

 }