<pre name="code" class="cpp">void SplitStringByDelimiter(const string& str,const string & strDelimiter,vector<string>& vtSubStr)
{
int iLen = str.length();
int isize = str.size();
int iDelLen = strDelimiter.length();
int iFPos = 0; //First position
int iSPos=str.find(strDelimiter); //second position
while ( iSPos >= 0){
string substr = str.substr(iFPos,iSPos-iFPos);
if ( !substr.empty() ){
vtSubStr.push_back(substr);
}
iFPos = iSPos+iDelLen;
iSPos = str.find(strDelimiter,iFPos);
}
string substr = str.substr(iFPos,iLen-iFPos);
if ( !substr.empty() ){
vtSubStr.push_back(substr);
}
return;
}
int _tmain(int argc, _TCHAR* argv[])
{
char * psz1 = "a,b,c,d,e,f";
char * psz2 = "测试::分割::字符串::";
vector<string> vt1;
cout<<"psz1="<<psz1<<endl;
cout<<"分割后:"<<endl;
SplitStringByDelimiter(psz1,",",vt1);
for ( int j = 0; j < vt1.size(); ++j ){
cout<<(vt1[j].c_str())<<endl;
}
vt1.clear();
SplitStringByDelimiter(psz2,"::",vt1);
cout<<"psz2="<<psz2<<endl;
cout<<"分割后:"<<endl;
for ( int i = 0; i < vt1.size(); ++i ){
cout<<(vt1[i].c_str())<<endl;
}
vt1.clear();
return 0;
}
<img src="https://img-blog.csdn.net/20150107120956844?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveWJpbjIyNQ==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />