0
所以我有这个数据包,我想要使用TCP/IP协议将它发送到我的设备。我的阵列是:如何在C++中将十六进制字符数组转换为字符串?
unsigned char array1[] = {'0x00', '0x84', '0x00', '0x00', '0x00', '0x06', '0x54', '0x01', '0x00', '0x01', '0x00', '0x03'};
我想要这个转换成一个字符串。我该怎么做?
现在我只是手动写下十进制值:
unsigned char array1[] = {0,132,0,0,0,6,84,5,0,2,255,0};
并将其转换成字符串:
std::string data (array1, array1 + sizeof array1/sizeof array1[0]);
不过,我不知道我可以用我的十六进制数据包就像一个字符串直?
string x= "00 84 00 00 00 06 54 05 00 02 FF 00";
也有一种方法,我可以设计我的消息头,这是不改变的前7个字节?该部分的其余部分有哪些变化?
请注意,'0x00'不是一个单一的“字符”,它是一个多字节字符。也许你的意思是'unsigned char array1 [] = {0x00,0x84,...};'? *没有*引号? –
没有引号,它会针对无符号类型抛出警告。 –
为什么你想要它作为'std :: string'?我不太确定这是否是“正确的”数据类型... –