【才疏学浅,难免有纰漏,若有不正确的地方,欢迎指教】
MFC中有一个库函数 Tokenize();
函数原型:CStringT Tokenize( PCXSTR pszTokens , int& iStart ) const;
这个函数可以根据某个字符将CString分隔开。
事先设定好缓冲区,被分割之后的字符串需要一个缓冲区来存储,比如容器,或者字符数组。
如果不知道会划分多少段,建议使用容器或者动态字符数组来当缓冲区。
循环次数是要进行分割的段落数,比如你想要分割成3段,就设定3.
例子:
1 CString str="abc,def,ghi"; //需要分割的字符串 2 vector<CString>Temp; //分割之后的每个部分,分别存入容器中 3 int pos = 0; //函数需要的标记参数 4 for(int i = 0; i < 3; i++) 5 { 6 Temp.push_back(str.Tokenize(","),pos); 7 //如果输出temp中的每个元素,则分别输出abc def ghi 8 }
输出结果:
cout << Temp[0] << endl; cout << Temp[1] << endl; cout << Temp[2] << endl; //打印: abc // def // ghi