如何清除文本中的中文标点符号

xmanner 2008-03-21 11:15:50
VC初学者,在做一个统计文本中纯汉字个数的程序~用WINDOWS SDK
思路是用GetWindowText获得文本~存储在一个char[]里
然后把空格/标点的个数去掉~
算出汉字的个数~
处理英文的标点符号好办~
但是不知道该如何分辨里面的中文标点符号~
请求各位帮助~
另外想问下使用unicode跟多字符集在处理中文标点符号这个功能上面有没有区别(我在.NET 2005 的项目属性里设置了“多字符集”)~
希望各位达人教下我~
谢谢了~
...全文
367 点赞 收藏 3
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
systemthink 2008-03-22
struct Filter:public unary_function<char,bool>
{
public:
Filter(const string& f):filter(f){}
bool operator()(char ch) const {return filter.find(ch)!=string::npos;}
private:
string filter;
};

Way:Filter F("\",..;:!" ", ,?? 。,)(\\/'");随便你加么子东东..
xxx.erase(remove_if(xxx.begin(),xxx.end(),F),xxx.end());
回复
ltmit 2008-03-21
给你个方法,以前我就是用它弄的中文字符搜索。
1.直接用 char a[]=","; /*这是中文逗号*/ 这样在你的文本char数组里面查找子串a就行。句号、全角空格等业能类似处理。
2.还有就是查资料获取ascII码,也可以在1方法的基础上通过编一个小程序获取一个中文标点的两位ascII。
一般说来,中文字符的ascii为两位。首位为负数!这是一个很好用的判断方法。例如,中文空格(两个字节)的AscII码为-95,-95
回复
CrownLiu 2008-03-21
中文标点好像是 0xA1XX到0xA3XX之间吧?
啊 0xB0A1
最 0xD7EE

回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2008-03-21 11:15
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……