`
dqifa
  • 浏览: 116346 次
社区版块
存档分类
最新评论

使用wxStringTokenizer分割字符串

 
阅读更多
//wxStringTokenizer::wxStringTokenizer  (const wxString & str, 
//                                       const wxString &  delims = wxDEFAULT_DELIMITERS,
//                                       wxStringTokenizerMode  mode = wxTOKEN_DEFAULT
//                                       ) 

//wxTOKEN_DEFAULT:如果分割符为空白字符则等同于wxTOKEN_STRTOK,否则等同于wxTOKEN_RET_EMPTY.
//wxTOKEN_RET_EMPTY:在这种模式,空白部分将作为一个子字符串部分被返回,例如"a::b:"如果用":"分割则返回三个子字符串a, ""和b.
//wxTOKEN_RET_EMPTY_ALL:在这种模式下,最后的空白部分也将作为一个子字符串返回. 这样"a::b:"使用":"分割将返回四个子字符串,其三个和wxTOKEN_RET_EMPTY返回的相同,最后一个则为一个"".
//wxTOKEN_RET_DELIMS:在这种模式下,分割符也作为子字符串的一部分(除了最后一个子字符串,它是没有分割符的),其它方面类似wxTOKEN_RET_EMPTY.
//wxTOKEN_STRTOK:这种情况下,子字符串的产生结果和标准strtok函数完全相同.空白字符串将不作为一个子字符串.

#include <wx/tokenzr.h>
#include <wx/arrstr.h>
wxArrayString StringSplit(const wxString src,const wxString seperator="")
{
    wxArrayString sa;
    wxStringTokenizer tokenizer(src, seperator);
    while ( tokenizer.HasMoreTokens() )
    {
        wxString token = tokenizer.GetNextToken();
        sa.Add(token);
    }
    return sa;
}

void wwFrame::OnAbout(wxCommandEvent& event)
{
    wxArrayString s;
    s=StringSplit("first:second:third:fourth");
    for(int i=0; i<s.GetCount(); i++)
    {
        wxMessageBox(s[i]);
    }
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics