C++将字符串转换为ASCII表示形式

suk*_*nej 3 c++

我正在编写一个简单的数据包解析器.为了测试,我准备了以下格式的数据:

std::string input = "0903000000330001 ... ";
Run Code Online (Sandbox Code Playgroud)

我需要把它变成这样的东西

0x09 0x03 0x00 0x00 ...
Run Code Online (Sandbox Code Playgroud)

你能帮我解释一下我应该如何构建新的字符串吗?

我已经尝试过这些......

std::string newInput = "\x09\x03\x00 ... ";
std::string newInput = "\u0009\u0003\u0000 ...";
Run Code Online (Sandbox Code Playgroud)

但程序返回该字符串的大小只有两个.

std::cout << newInput.size() << std::endl;
 > 2
Run Code Online (Sandbox Code Playgroud)

我真的失踪或误解了一些东西......

Bo *_*son 6

std::string 可以保存带有嵌入的nul字符的字符串,但是你必须在构造函数中告诉它的长度:

std::string NewInput("\x09\x03\x00 ... ", number_of_characters);
Run Code Online (Sandbox Code Playgroud)

否则,std::string将用于strlen计算长度,并停在\x00.