这多少个函数可以遵照某个字符将CString分隔开,这么些函数可以依照某个字符将CString分隔开

【才疏学浅,难免有漏洞,若有不科学的地点,欢迎指教】

【才疏学浅,难免有尾巴,若有不科学的地点,欢迎指教】

MFC中有一个库函数 Tokenize();

MFC中有一个库函数 Tokenize();

函数原型:CStringT Tokenize( PCXSTR pszTokens , int& iStart ) const;

函数原型:CStringT Tokenize( PCXSTR pszTokens , int& iStart ) const;

那多少个函数可以遵照某个字符将CString分隔开。

以此函数可以遵照某个字符将CString分隔开。

预先设定好缓冲区,被划分之后的字符串需要一个缓冲区来囤积,比如容器,或者字符数组。

优先设定好缓冲区,被剪切之后的字符串需要一个缓冲区来存储,比如容器,或者字符数组。

假如不知晓会分开多少段,提出拔取容器或者动态字符数组来当缓冲区。

假设不知道会分开多少段,提议接纳容器或者动态字符数组来当缓冲区。

巡回次数是要开展分割的段落数,比如你想要分割成3段,就设定3.

循环次数是要拓展分割的段落数,比如您想要分割成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     }
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
cout << Temp[0] << endl;
cout << Temp[1] << endl;
cout << Temp[2] << endl;

//打印:      abc
//             def
//             ghi