最近手头的活中,需要对字符串进行分析,字符串中同时含有中英文字符和数字。截取字符串时偶尔会截取到半个汉字,而这半个汉字一般被显示为‘?’,比较难看。请教各位大侠,如何判定并删除这半个汉字?如果存在的话,这半个汉字肯定存在于字符串末尾。

解决方案 »

  1.   

    IsDBCSLeadByte函数可以判断一个字节是否是中文字节,在截取字符串的时候,从第一个字符开始对中文字节进行计数,只要你不在计数变量是单数的时候截断字符串,就不会出现半个汉字的情况了
      

  2.   

    BOOL IsDBCSLeadByte(
      BYTE TestChar   // character to test
    );
      

  3.   

    突然想起了,汉字占两个字节,两个字节的第一位都为“1”。
     你依次取一个字串中的每个字符,OK,
    例如,
    char *s="123我";
    int(s[3])==负值,就可以判断它是半个汉字,我以前用过这样的方法