转int为char C

Turn int to char C

我正在尝试将 72, 101, 108 之类的整数转换为 '72', '101', '108'

原来的程序是我读取字符串"Hello\n",然后得到每个字符的ASCII值,然后将这些int放入一个char数组中。

我试过了:

int a = 72;
char b = (char)a; 

但这会将 int 从 ASCII 转换回字符。

我也试过:

int a = 72;
char b = a + '0';

但这根本行不通。

这是我的:

char buff[128];
strcpy(buff, "Hello\n");

char tmp[128];
bzero(tmp, 128); // initialize array

int n = 0;
while(buff[n] != '\n') {
   int ascii = (int)buff[n];
   en[n] = (char)ascii; // RIGHT HERE
   n++;
}
strcat(tmp, "\n");

fprintf(stdout,"%s", tmp);

这些'72', '101', '108'什么时候变成字符了?字符值存储在 1 个字节中。

您可以使用 sprintf or snprintf。将整数转换为字符数组。

int c = 4;
char tin [Some_Length];
sprintf(tin , "%d", c);

snprintf(tin , Some_Length, "%d", c);