MFC中怎么分割CString类型的数据

MFC中如何分割CString类型的数据

【才疏学浅,难免有纰漏,若有不正确的地方,欢迎指教】

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