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

ani*_*nik 60 c

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

Ofi*_*fir 85

C中的char已经是一个数字(字符的ASCII码),不需要转换.

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

c = i +'0';
Run Code Online (Sandbox Code Playgroud)

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

  • 不适用于i> = 10 (14认同)
  • 编译器将'0'解释为表示零字符的ASCII码,并且在ASCII中,数字'0'到'9'填充一个简单的代码范围(48到57 IIRC). (12认同)
  • @ user5980143是的,但是无法将i> 9转换为_single_ char (7认同)

rat*_*tty 25

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

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

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

  sprintf(str, "%d", i);
  // Now str contains the integer as characters
} 
Run Code Online (Sandbox Code Playgroud)

这是另一个例子

#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
*/
Run Code Online (Sandbox Code Playgroud)

  • `atoi`与它有什么关系? (4认同)
  • `atoi`与OP想要的相反. (4认同)

Ama*_*osh 11

只需将其赋值intchar变量即可.

int i = 65;
char c = i;
printf("%c", c); //prints A
Run Code Online (Sandbox Code Playgroud)

  • 您需要在第1行的65之后添加分号 (3认同)

Dee*_*dav 7

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

int i=5;
char c = i+'0';
Run Code Online (Sandbox Code Playgroud)


小智 5

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

int a=8;  
char c=a+'0';
printf("%c",c);       //prints 8  
Run Code Online (Sandbox Code Playgroud)

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

char c='5';
int a=c-'0';
printf("%d",a);        //prints 5
Run Code Online (Sandbox Code Playgroud)