首页 > 解决方案 > 从字符串中读取十六进制值并将它们存储到 c/c++ 中的整数数组中

问题描述

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

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 中做同样的事情,我将非常感激。

标签: c++cqt

解决方案


使用 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;
}

推荐阅读