注册 登录
编程论坛 C++教室

如何判断是否为汉字啊

a99875984 发布于 2013-06-29 09:46, 1200 次点击
请问下,如何判断是否为汉字啊
6 回复
#2
rjsp2013-06-29 12:28
取决于你用的是哪个字符编码集
#3
a998759842013-06-29 19:08
回复 2楼 rjsp
我是在做一个小系统,因为要输入姓名,要判断他是否是汉字,难道不能想判断是否是数组或者字符那样子吗?
#4
yuccn2013-06-29 21:47
判断汉字的,这个和编码有关把
#5
a998759842013-06-30 08:35
回复 4楼 yuccn
谢谢了,我查了下,差不多懂那个意思了
程序代码:
int ischinese(string a)
{
    unsigned char b;
    for(int i=0;i<a.size()/2;i++)
        for(int j=0;j<(i+1)*2;j++)
        {
            b=a[j];
            if(b>=0xa1&&b<=0xfe)
                continue;
            else
                return 0;
        }
    return 1;
}

现在就是不知道if判断的开始位置和结尾位置在哪,不知道这个判断会不会输入有些汉字识别不出来


[ 本帖最后由 a99875984 于 2013-6-30 08:36 编辑 ]
#6
TonyDeng2013-06-30 15:12
人家告诉你与编码有关,你就应该回应使用的什么环境、到底想做什么才对。
#7
TonyDeng2013-06-30 15:26
你5楼的代码肯定有问题,没考虑中英夹杂的情况,想当然除以2是不行的。那个判断法是基于GB2312编码,如果编码对了,这个判断单字是可以的。
1