我正在编写一个简单的数据包解析器.为了测试,我准备了以下格式的数据:
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)
我真的失踪或误解了一些东西......
std::string 可以保存带有嵌入的nul字符的字符串,但是你必须在构造函数中告诉它的长度:
std::string NewInput("\x09\x03\x00 ... ", number_of_characters);
Run Code Online (Sandbox Code Playgroud)
否则,std::string将用于strlen计算长度,并停在\x00.
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |