如何在C中将整数转换为char?
答案 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);
}