//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]);
}
}