新手学习!! 如何区分字符串中的汉字还是英文??
比如说 这样一个字符串 char str[30] 让用户输入字符~~~
用户输入 i like 编程论坛.
可是 英文和标点符号只占1个字节,而汉字占了2个字节,我怎么才能区分出 那个是汉字 哪个是 英文 哪个是标点符号???
汉字由2个字节组成...
为了和标准ASCII码(0-127)区别开, 所以汉字每个字节的最高位都置1..
即
1xxx xxxx 1xxx xxxx (2个字节的汉字..)
所以你判断字节最高位是否为1就可以了..
即
假设指针char* p指向当前待判断字节...
if(*p && 0x80) //0x80 = 1000 0000
printf("这可能是汉字字节");
注意, 扩展ASCII码(128-255)的最高位也是1, 所以可能出现判断失误...
其实汉字编码还有一套完整的规则, 原来我并没有去深研, 现在忘得也差不多了,
所以只能把我还记得的部分拿来讲一下..
哪位有兴趣和精力可以去查下资料, 然后帖过来...