#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
时间: 2024-10-13 10:13:27