您好,我正在使用 digi dynamic c。我正在尝试将其转换为字符串
char readingreg[4];
readingreg[0] = 4a;
readingreg[1] = aa;
readingreg[2] = aa;
readingreg[3] = a0;
目前,当我执行
printf
语句时,它必须是这样的:printf("This is element 0: %x\n", readingreg[0]);
但我想要这个字符串,所以我可以使用这样的
printf
语句 printf("This is element 0: %s\n", readingreg[0]);
我本质上是通过 TCP/IP 端口发送 readingreg 数组,为此我需要将它作为字符串。我似乎无法将其转换为字符串。谢谢你的帮助。
此外,如果有人能告诉我如何一次处理每个元素而不是整个数组,那也没关系,因为只有 4 个元素。
最佳答案
0xaa
在普通 char
签名时溢出,使用 unsigned char
:
#include <stdio.h>
int main(void)
{
unsigned char readingreg[4];
readingreg[0] = 0x4a;
readingreg[1] = 0xaa;
readingreg[2] = 0xaa;
readingreg[3] = 0xa0;
char temp[4];
sprintf(temp, "%x", readingreg[0]);
printf("This is element 0: %s\n", temp);
return 0;
}