从字符串中读取十六进制值并将其存储到c / c ++中的整数数组中

时间:2018-11-12 13:27:29

标签: c++ c qt

我想问一下如何将字符串中的十六进制值存储到整数数组中。 例如掩盖

String sbox_str= "0x65, 0xea, 0xaf, 0x37, 0xff, 0x3b, 0xc2, 0xd0";

进入

uint8_t sbox[8]={0x65, 0xea, 0xaf, 0x37, 0xff, 0x3b, 0xc2, 0xd0};

如果您能指导我如何在QT Creator中做相同的事情,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

使用QString的简便方法:

std::string sbox_str= "0x65, 0xea, 0xaf, 0x37, 0xff, 0x3b, 0xc2, 0xd0";
uint8_t sbox[8];

int i = 0;
for( const auto &item: QString(sbox_str.data()).split(", ")) {
    if(i == sizeof (sbox)) break; // do something
    sbox[i] = item.toInt(nullptr, 16);
    ++i;
}