首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wxWidgets wxString

wxWidgets wxString
EN

Stack Overflow用户
提问于 2011-04-19 19:03:48
回答 3查看 2.6K关注 0票数 0

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

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-19 19:14:30

我将使用wxStringTokenizer将字符串分解为单独的十六进制,然后使用sscanf将它们转换为数字值。

如下所示:

代码语言:javascript
复制
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 );
}
票数 2
EN

Stack Overflow用户

发布于 2016-05-23 15:30:16

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

代码语言:javascript
复制
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 );
}
票数 1
EN

Stack Overflow用户

发布于 2011-11-21 20:41:37

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5715354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档