我想将数组中的十六进制转换为ASCII以比较消息。
我在下面有这个
#include <stdio.h>
#include <string.h>
void main(void)
{
char Message1[] = "Hello123";
char Message2[] = {'4','8','6','5','6','C','6','C','6','F','3','1','3','2','3','3'}; //This message is "Hello123" and I would like to convert "Message2[]" to "Hello123".
if(strcmp (Message1,Message2) == 0 )
{
LED1(ON);
}
else
{
LED1(0FF);
}
}
您能否告诉我或建议我如何将十六进制从“ Message2 []”数组中的ASCII转换为String以进行上面的比较?
答案 0 :(得分:0)
char Message1[] = "Hello123";
char Message2[] = {'4','8','6','5','6','C','6','C','6','F','3','1','3','2','3','3'}; //This message is "Hello123" and I would like to convert "Message2[]" to "Hello123".
char Message2asStr[sizeof(Message2)/2+1] ={}; // zero the buffer
unsigned i;
for (i=0; i < sizeof(Message2) ; i += 2) {
int ch;
if (sscanf(Message2+i, "%2x", &ch) != 1) {
printf("there is an error\n");
break;
}
Message2asStr[i/2] = ch;
}