关于CString类的一个问题(c++高手请进)

来源:百度知道 编辑:UC知道 时间:2024/05/14 11:08:41
我想在想解决一个问题,就是如何将cstring类型的一个变量的数据拆分成若干个cstring类型的很多变量。举个列子:
CString Example=“abc,edf,igh”
然后根据逗号,将Example分成
Example1=“abc”
Example2=“edf”
Example3=“igh”
这样的三个变量呢?
请高手指点!!!

你说的是分词功能吧。这个功能想写好了不容易。不如用一些现成的库。
具体可以参考http://www.cppblog.com/db123/archive/2009/05/21/83556.html

个人推荐用STLSOFT的库,速度飞快!

看这里
zhidao.baidu.com/q?ct=24&cm=16&tn=ikusercenter&item=answer
你会看到许多string 的库函数,
然后,你可以用

5. 字符串搜索
where = str1.find(str2); //返回str2是在str1中的最先被找到的位置
where = str1.find(str2,pos1); pos1是从str1的第几位开始。
where = str1.rfind(str2); 从后往前搜。

找到','

然后 再用

4. 字符串提取
str2 = str1.substr(); //str2值被赋值为str1
str2 = str1.substr(pos1); //如str2=str1.substr(2);则str2=”llo”;
str2=str1.substr(pos1,len1); //提取指定位置指定长度的字符串,如str2=str1.substr(1,2) ;则str2=”el”

将每个小串提取出来。

只要一重循环就可以解决

CString * SplitString(CString str, char split, int& iSubStrs)
{
int iPos = 0; //分割符位置
int iNums = 0; //分割符的总数
CSt