MFC中对CString类型的操作并没有Java和C#中封装的类似Split方法,此方法是用于实现按指定符号分隔字符串保存到数组中,例如: string str = "a,b,c,d,e,f" 那么经过调用Split(',')后就返回一个数组string[],分别保存着a, b, c, d, e, f 然后循环遍历数组就可以取到没一项了。下面是MFC实现这一功能的代码:
//实现C#的String.Split()方法
vector<CString> Split(CString string)
{
CString oriStr = string;
vector<CString> strVec;
while (true)
{
CString n = oriStr.SpanExcluding(",");//获取.之前的字符串
strVec.push_back(n);
oriStr = oriStr.Right(oriStr.GetLength()-n.GetLength()-1);//从右边1开始获取从右向左前 nCount 个字符
if (oriStr.IsEmpty())
{
break;
}
}
return strVec;
}
最后被保存在一个CString类型的vector中,同样遍历vetcor就可以得到每一项的值;for(int i = 0; i < vectStr.size(); i++)还有更高效的遍历方法这儿就不多说了,以后需要这个函数就直接使用了。