簡體   English   中英

如何在C ++中將十六進制字符數組轉換為字符串?

[英]How to convert a hexadecimal character array into string in C++?

因此,我有這個數據包,我想使用TCP / IP協議將其發送到我的設備。 我的數組是:

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構造函數,該構造函數也采用長度(即字節數)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM