首页 > 代码库 > C语言判断中文字符

C语言判断中文字符

#include<stdio.h>int main(){    char s[20];    int i,j;    char a,c[3];    FILE * fp;    scanf("%s",s);    fp=fopen(s,"r");    if(!fp){        printf("open error\n");        return 1;    }    i=0;    c[2]=\0;    while((a=fgetc(fp))!=EOF){        if(a&0x80){            c[i]=a;            i++;            if(i==2){                printf("%s 是汉字\n",c);                i=0;            }        }        else i=0;    }              getchar();    getchar();    return 0;    }

汉字编码区别于其他编码的标志就是汉字编码的最高位是1. 0x80在计算机内部表示为1000 0000 这段程序常用于判断当前字符是否是汉字.&是按位与, 对应都是1时才为1, 其它情况均未0. 如: 1010 1011 & 1000 0000 = 1000 0000 即  a&0x80

C语言判断中文字符