C语言求助:关于数字与字符串的对应怎么做

2019-07-20 23:57发布

如题。
我的需求是用printf打印出板卡类型等调试信息。

我知道printf显示字符的用法大概是下面这样:
printf("   the char is %s the chinese is %s   ","abcdefg,","中华五千年");

也会把字符放在数组里:
char *BoardType_Display [3]={
"主控板",
"采集板",
"发送板"
}


printf("   the board type is %s   ","abcdefg,",BoardType_Display [1]);


上面的例子中我是用数组的下标来对应板卡类型的。实际上板卡类型是用两个字节来表示的,比如0x0302代表采集板,0x0101代表主控板。

那么请问我该怎样把板卡类型和那两个字节对应起来并通过串口打印出来呢?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
11条回答
XUZJWWSZ
2019-07-22 10:09
我暂时用了一个二维数组解决它:
char *BoardType_Display [board_type_number+2]={
"默认板",
"未定义的板",
"主控板",
"主交叉板",
"单路发送板",
"8路发送板",
"32路发送板",
"8路采集板",
"32路采集板",
"传感器采集板"

};

uint8_t BoardType_Display_table[5][4]={
{0,1,1,1},
{1,2,3,1},
{1,4,5,6},
{1,7,8,1},
{1,9,1,1}       
};

然后比如说我得到的板卡类型是0x0302,
我就调用函数:
printf(" 板卡类型是 %s",BoardType_Display[BoardType_Display_table[0x03][0x02]]);

一周热门 更多>