怎么判断一个字符是不是全角字符,并且区分是汉字还是汉语符号
while((e=fgetc(aa))!=EOF){ if(e<0)
zz++;
这样可以判断一个字符是不是双字节符号,但是问题是会统计所有的双字节符号,我希望能有一个统计一个字符是不是汉字的方法,在线等挺急的!!拜托了!能不能回帖时写上代码...救命..
2018-06-21 09:53
程序代码:#include <stdio.h>
int main(void)
{
int ch, gb2312 = 0;
FILE* fp = NULL;
/* GB2312 */
fp = fopen("1.txt", "r");
if (NULL == fp) {
perror("fopen failed");
return 127;
}
while ((ch = fgetc(fp)) != EOF) {
if (ch < 0x7f) { /* ascii range */
printf("ascii char : %c\n", ch);
}
if ((ch >= 0xa1) && (ch <= 0xfe)) { /* gdb2312 range */
if (gb2312) {
gb2312 <<= 8;
gb2312 += ch;
if (gb2312 >= 0xb0a1) { /* hanzi range */
printf("GB2312 hanzi : %x\n", gb2312);
}
else {
printf("GB2312 symbol : %x\n", gb2312);
}
gb2312 = 0;
}
else {
gb2312 = ch;
}
}
else { /* unknown */
printf("unknown byte %x\n", ch);
}
}
return 0;
}
2018-06-21 10:31
2018-06-21 10:33
2018-06-21 20:06