c/vc++一个字符是否是汉字的判断方法
GB2312码是汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。
GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。GB2312规定"对任意一个图形字符都采用两个字节表示,每个字节均采用七位编码表示",习惯上称第一个字节为"高字节",第二个字节为"低字节"。GB2312-80包含了大部分常用的一、二级汉字,和9区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0XA1-0XFE,低位也是0XA1-0XFE;汉字编码范围是高位0XB0-0XF7,低位是0XA1-0XFE.
下面是用C写的一个判断汉字的程序:
#include<stdio.h>
int main(void)
{
int i;
unsigned char str[80];
puts("input string:");
scanf("%s",str);
for(i=0;i<80&&str[i]!='\0';)
{
if(str[i]>=0xb0&&str[i]<=0xf7&&str[i+1]>=0xa1&&str[i+1]<=0xfe)
{
printf("chinese character\n");
i+=2;
}
else
{
printf("other character\n");
i++;
}
}
return 0;
}