例如:
CString sz;
sz = "...cd汉字字符...";
sz为不定长字符串,怎样某一个字符(比如第9个)是不是汉字

解决方案 »

  1.   

    如果只有英文ASCII码和汉字,可以看高位是否为1;
    即sz[i] & 0x80
      

  2.   

    搜索一下关键字---VB 汉字----
    我见过人家在VB下通过校验GB编码,来判断该字符是否为汉字,
    楼上的方法对UNICODE编码可能失效(没试过,猜测而已)
      

  3.   

    可以使用函数_ismbcslead和_ismbcstrail.
    或者自己判断,连续2个字节大于0xA0就是汉字。
      

  4.   

    汉字是双字节的,而且有一固定的范围,下面给你一个判断是否为汉字的小程序,参数是两个相邻的字节bool IsHZCode(unsigned char bC1, unsigned char bC2)
    {
    if ((bC1 >= 0xa1)&&(bC1 <= 0xfe)&&
    (bC2 >= 0xa1)&&(bC2 <= 0xfe))
    return true;
    else
    return false;
    }
    返回 true 表明是汉字,否则,不是,
      

  5.   

    汉字是双字节的,而且有一固定的范围,下面给你一个判断是否为汉字的小程序,参数是两个相邻的字节bool IsHZCode(unsigned char bC1, unsigned char bC2)
    {
    if ((bC1 >= 0xa1)&&(bC1 <= 0xfe)&&
    (bC2 >= 0xa1)&&(bC2 <= 0xfe))
    return true;
    else
    return false;
    }
    返回 true 表明是汉字,否则,不是,
      

  6.   

    简体中文汉字GB码的两个字节的编码范围应该是...
    c1 >= 0xA1 && c1 <= 0xF7;
    c2 >= 0xA1 && c2 <= 0xFE;繁体中文汉字BIG5码的两个字节的编码范围应该是...
    c1 >= 0xa1 && c1 <= 0xfa;
    c2 >= 0x40 && c2 <= 0xff;所以简体中文GB码判断程序应该是:
    bool IsHZCode(unsigned char bC1, unsigned char bC2)
    {
      if ((bC1 >= 0xa1)&&(bC1 <= 0xf7)&&(bC2 >= 0xa1)&&(bC2 <= 0xfe))
        return true;
      else
        return false;
    }