//功能:split的TCHAR模板版本,用splitter将字符串分割成多个,并分别压进vector容器中 //返回值:容器中的字符串数量。 //参数1:需要被分割的字符串 //参数2:splitter //参数3:vector容器的引用,结果放进参数3中 //参数4: 是否计算末尾的splitter template <class strClass> size_t split( const TCHAR* str, const TCHAR* delim, vector<strClass>& results, bool empties = false) { const TCHAR* pstr = str; const TCHAR* r = _tcsstr(pstr, delim); size_t dlen = lstrlen(delim); while( r ) { if( empties || r > pstr ) { results.push_back(strClass(pstr, (int)(r - pstr))); } pstr = r + dlen; r =_tcsstr(pstr, delim); } if( empties || lstrlen(pstr) > 0) { results.push_back(strClass(pstr)); } return results.size(); } 调用示例 TCHAR *p = "test,hello,world,"; vector<string> ve_str1; vector <CString> ve_str2; unsigned int i = split(p, ",", ve_str1, false); for (vector<string>::iterator it = ve_str1.begin(); it != ve_str1.end(); it++) { cout<<*it<<"|"; } cout<<endl<<"vector中共有 "<<i<<" 个string字符串"<<endl; unsigned int j = split(p, ",", ve_str2, false); for (vector<CString>::iterator it = ve_str2.begin(); it != ve_str2.end(); it++) { cout<<*it<<"|"; } cout<<endl<<"vector中共有 "<<j<<" 个cstring字符串"<<endl;