AfxExtractSubString是截取字符串的函数,很好用,不过美中不足的地方在与它只能使用单个字符作为分割符。
但是这种情况在很多时候都行不通,如果分割符需要是两个字符以上呢?
之前因为这个问题试了很久,也在网上搜索过。不过可惜的是,网上的大部分关于VC截取字符串的文章都是那么同样的几篇,都是写的满复杂然后可以实现了AfxExtractSubString功能而已的,也就是只能用单个字符截取,但是标题却写着用字符串截取字符串,好笑!
不找了,自己写吧。CString里面有Find,然后再组成数组。
voidSplit(CStringsource,CStringArray&dest,CStringdivision)
...{
dest.RemoveAll();
intpos=0;
intpre_pos=0;
while(-1!=pos)...{
pre_pos=pos;
pos=source.Find(division,(pos+1));
dest.Add(source.Mid(pre_pos,(pos-pre_pos)));
}
}
CStringsource是需要截取的原字符串,
CStringArray&dest 是最终结果的数组
CStringdivision 是用来做分割符的字符串
使用方式:
CStringArraydest;
Split(strViewString,dest,"<divid="pro_detail">");
本文介绍了一种使用VC++实现的自定义字符串分割方法,通过CString类的Find方法结合Mid方法来实现多字符作为分割符的功能,并提供了一个示例代码。
398

被折叠的 条评论
为什么被折叠?



