如何将asigned char打印为ascii

时间:2014-02-10 11:07:30

标签: c unsigned-char

我正在尝试将unsigned char转换为ascii文本。我该怎么做? 我试过这个,但这是错的:

typedef struct mtmheader
{
  unsigned char objName[20]; 
  unsigned char msgType[2];  
}mtmheader;

mtmheader h;
processMTMHeader(datap,&h, endmmsgp );
printf("Name, type: %s %c\n",(char *) &h.objName,(char *) &h.msgType);

修改 我读取无符号字节流,并想知道我怎么打印是ascii文本。在printf中只有伪代码,这是错误的。

1 个答案:

答案 0 :(得分:4)

printf("Name, type: %s %c\n", h.objName, h.msgType[0]);

应该打印整个字符串objNamemsgType中的第一个字符。

对于第一个工作,你必须确保objName真的是空终止。

unsigned char对于使用char而不使用unsigned的字符串而言,使用的字符串类型不正确。