将每个数字的整数转换为char?

时间:2013-12-06 18:20:41

标签: c arrays parsing char int

我有一个连接到我正在编程的处理器的显示器。它是气象站的一部分,我需要显示温度和其他数据。

但是有一个问题。将整数写入显示是不可能的,因为显示器自己的控制器使用8位数据总线来确定将写入哪个字符。

请注意,我编写的函数DisplayPrint采用了一系列字符。然后分析该数组和';' character确定数组停止的位置。我会做 DisplayPrint("Temperature: ;")以便在显示屏上写下“温度:”。

以下是问题:如何发送整数并返回字符数组?

实施例: 函数称为parseChar

int x = 100;  
char string[255];  
string = parseChar(x);

x进入parseCharparseChar返回一个看起来像的数组;

string[0] = '1'  
string[1] = '0'  
string[2] = '0'  
string[3] = ';'  
string[4 to 254] = *don't care, can be anything*

我已经坐了两天,根本没有成功。


这不是为电脑编程。

我正在使用连接到Arduino DUE的J-tag,它连接到带控制器的人机界面。使用 IAR Embedded Workbench

完成编程

3 个答案:

答案 0 :(得分:3)

您可以使用snprinf。

而不是使用parseChar
snprintf(string, sizeof(string), "%d;", x);

如果您希望缓冲区的其余部分为0 s,请事先用memset清除它。

memset(string, 0, sizeof(string));

答案 1 :(得分:2)

将字符串设置为您的数字+分号:

snprintf(string, sizeof(string), "%d;", x);

答案 2 :(得分:0)

您可以使用snprintfhttp://linux.die.net/man/3/snprintf),如其他答案所示。

但是,如果你想知道将十进制转换为字符串的逻辑,你应该考虑在10上使用mod操作。例如:

前)

2345 % 10 = 5
2345/10 = 234 (integer)

然后)

234 % 10 = 4
234 / 10 = 23

然后)

23 % 10 = 3
23 / 10 = 2

然后)

2 % 10 = 2
2 / 10 = 0 (stop)

因此,你只需要一个while循环,当除法为0时将停止。要将int数字转换为chars,你需要str[i] = 2 + '0';,例如{更多关于https://stackoverflow.com/questions/1114741/how-to-convert-int-to-char-c)。