#include <vector>
std::vector<CString> SplitCString(CString strSource, CString ch);
//参数1:待分割的字符串;参数2:作为分割标志的字符串,比如以","号为标志分割字符串,就填","
std::vector<CString> SplitCString(CString strSource, CString ch)
{
std::vector <CString> vecString;
int iPos = 0;
CString strTmp;
strTmp = strSource.Tokenize(ch,iPos);
while(strTmp.Trim() != _T(""))
{
vecString.push_back(strTmp);
strTmp = strSource.Tokenize(ch,iPos);
}
return vecString;
}
C++想实现其他语言那样的动态数组效果需要使用STL容器,所以返回值用一个Vector容器来存放,Vector容器可以用类似数组下标[ ]的方式访问队列中的元素,这样就实现了其他语言一样的效果。
例子:
CString Merke;
vector<CString>ngela;
CString eopen=L"春哥纯爷们,铁血真汉子。";
ngela=SplitCString(eopen, L",");
int erm=ngela.size();//统计一共有多少个元素
Merke=ngela[1];//Merke的值为:铁血真汉子。