【发布时间】:2016-03-17 22:54:48
【问题描述】:
我有这个字符串
string in = "Two One Nine Two";
我使用以下函数将其转换为十六进制
std::string string_to_hex(const std::string& input)
{
static const char* const lut = "0123456789ABCDEF";
size_t len = input.length();
std::string output;
output.reserve(2 * len);
for (size_t i = 0; i < len; ++i)
{
const unsigned char c = input[i];
output.push_back(lut[c >> 4]);
output.push_back(lut[c & 15]);
}
return output;
}
现在,如何将它拆分成这样的数组
int plain[16] = {0x54,0x77,0x6F,0x20,0x4F,0x6E,0x65,0x20,0x4E,0x69,0x6E,0x65,0x20,0x54,0x77,0x6F};
【问题讨论】:
-
我不认为你理解这个任务。例如,字符
w不是十六进制值。也许您需要在转换为十六进制之前将“二”转换为数字 2。 -
如果您从
input.c_str()迭代结果,您会注意到它是一个类似于您的plain的数组。
标签: c++ arrays string split hex