wxWidgets wxString

时间:2011-04-19 11:03:48

标签: wxwidgets

我正在使用带有c ++的wxWidgets。我有一个wxTextCtrl,其中用户输入一组以空格分隔的十六进制格式的字节。我想让它们在unsigned char数组中。如何从像“AB D3 4F A A1 0B”这样的字符串转换得到结果数组:[171,211,79,10,161,11]?

3 个答案:

答案 0 :(得分:2)

我会使用wxStringTokenizer将字符串分解为单个hexes,然后使用sscanf将它们转换为数值。

这样的事情:

std::vector<unsigned char> vec;
wxStringTokenizer tkz(thetextCtrl->GetValue(), wxT(" "));
while ( tkz.HasMoreTokens() )
{
    wxString token = tkz.GetNextToken();
    unsigned char v;
    sscanf(token.c_str(),"%x",&v)
    vec.push_back( v );
}

答案 1 :(得分:1)

除了使用sscanf转换十六进制整数,您还可以使用基数16中的ToULong operation of a wxString

to_internal_value

答案 2 :(得分:0)

您还可以使用boost::tokenizer将字符串拆分为标记,并使用this将字符串值转换为十六进制值。