VC初学者,在做一个统计文本中纯汉字个数的程序~用WINDOWS SDK
思路是用GetWindowText获得文本~存储在一个char[]里
然后把空格/标点的个数去掉~
算出汉字的个数~
处理英文的标点符号好办~
但是不知道该如何分辨里面的中文标点符号~
请求各位帮助~
另外想问下使用unicode跟多字符集在处理中文标点符号这个功能上面有没有区别(我在.NET 2005 的项目属性里设置了“多字符集”)~
希望各位达人教下我~
谢谢了~

解决方案 »

  1.   

    中文标点好像是 0xA1XX到0xA3XX之间吧?
    啊    0xB0A1
    最    0xD7EE
      

  2.   

    给你个方法,以前我就是用它弄的中文字符搜索。
    1.直接用 char a[]=",";  /*这是中文逗号*/   这样在你的文本char数组里面查找子串a就行。句号、全角空格等业能类似处理。
    2.还有就是查资料获取ascII码,也可以在1方法的基础上通过编一个小程序获取一个中文标点的两位ascII。
    一般说来,中文字符的ascii为两位。首位为负数!这是一个很好用的判断方法。例如,中文空格(两个字节)的AscII码为-95,-95
      

  3.   

    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());