wxWidgets wxString

| 我在c ++中使用wxWidgets。我有一个wxTextCtrl,其中用户以十六进制格式输入一组字节,并以空格分隔。我想让他们在无符号字符数组。如何从\“ AB D3 4F A A1 0B \”这样的字符串转换以得到结果数组:[171,211,79,10,161,11]?
已邀请:
我将使用wxStringTokenizer将字符串分解为单个十六进制,然后使用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 );
}
除了使用sscanf将Hex转换为整数外,还可以在基数16中使用wxString的ToULong操作。
wxString token = tkz.GetNextToken();
unsigned long ulVal;

if (token.ToULong(&ulVal, 16) == true)
{
  vec.push_back( (unsigned char)v );
}
else
{
  // A default value for example ...
  vec.push_back( (unsigned char)0 );
}
您还可以使用boost :: tokenizer将字符串拆分为令牌,并将字符串值转换为十六进制值。

要回复问题请先登录注册