c++ - C++中如何将十六进制字符数组转换成字符串?

标签 c++ arrays string hex type-conversion

所以我有这个数据包,我想使用 TCP/IP 协议(protocol)将它发送到我的设备。我的数组是:

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 个字节不变?其余部分有什么变化?

最佳答案

下面的代码应该可以满足您的需求。

std::string s { "\x00\x01\x02\x03\x04", 5 };

使用 std::string 构造函数,它也采用长度,也就是字节数。

关于c++ - C++中如何将十六进制字符数组转换成字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43488997/

相关文章:

C++ 返回一个来自另一个函数的指针是在复制它吗? valgrind 提示

c++ - visual studio 看不到我的包含文件

c++ - 如何将内容追加到 stringstream 类型对象?

javascript - 如何更新组件状态中的对象数组?

c++ - 如何在二维 vector 中复制一个 vector

javascript修改url参数数组

Java 迭代二维数组

string - 从字符串路径获取文件名?

无法在 main() 和函数(列表)之间传递值

php - 从字符串中删除所有 html 标签的最佳方法是什么?