cstring处理GB文本如何准确定位到下一个字符?

来源:百度知道 编辑:UC知道 时间:2024/09/24 06:25:31
朋友原来的代码是:
Cstring strData
num4 = strData.Find(">");
if(!(num4 == -1));
strData = strData.Mid(num4+1);

现在我要处理GB文本,CString中num4+1不能正确定位到下一个字符,请教如何处理?

文本片断:
<content>F-Zone?Club?>>?注册程序?注册可以让你成为讨论区的新成员?服务条款和声明?继续注册前请先阅读论坛协议?欢迎您加入本站点参加交流和讨论,本站点为公共论坛,为维护网上公共秩序和社会稳定,请您自觉遵守以下条款:?一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播下列信息:?

你朋友的代码仍然可以使用,不过你要注意的是:
strData.Find(">");
然后你要Find的字符串中的字符是ANSII字符的话,后面的strData = strData.Mid(num4+1); 加1就行,但如果你要Find的字符串中的字符是中文或者全角的符号的话,后面的strData = strData.Mid(num4+2); 就要加2。

例如你要去掉文件片段最前面的“<content>F-Zone?Club?>>”只保留后面的中文部分就这样:

int num4 = strData.Find(">>");
if(!(num4 == -1));
strData = strData.Mid(num4+4);