在这个简单的问题上遇到了真正的麻烦。 我有一个这样的字符串:
std::string msg = "00 00 00 00 00 06 01 05 00 FF 00 00";
我想:
unsigned char bbuffer[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0x01, 0x05, 0x00, 0xFF, 0x00, 0x00 };
有什么方法呢?
最佳答案
如果可能的话,我建议使用 std::vector<unsigned char>
而不是实际的数组。
使用它,我想我会做这样的事情:
std::istringstream buffer(msg);
std::vector<unsigned char> bbuffer;
unsigned int ch;
while (buffer >> std::hex >> ch)
bbuffer.push_back(ch);
如果你真的坚持数组,你可以这样做:
std::istringstream buffer(msg);
char bbuffer[12];
unsigned int ch;
for (int i=0; buffer >> std::hex >> ch; i++)
bbuffer[i] = ch & 0xff;
但 vector 通常更可取。
关于c++ - 将字符串转换为字节(无符号字符)数组 cpp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17626749/