读书人

怎么判断字符是中文字符

发布时间: 2012-02-08 19:52:21 作者: rapoo

如何判断字符是中文字符?
就是用开线程读取TXT文件中文字的时候 把一份分成10份 因为TXT文件中有些是英文有些是数字 有些是汉字!而我是一个字节一个字节读取的 所以有几个文本里字符读出来是错误的 我想这应该是跟把2个字节的汉字只读了一个字节有关把! 所以想问下 C++中如何判断字符是中文字符!

[解决办法]
如果当前字节> 0x80,则它和后一字节构成一个汉字,否则是其他内容(字母,数字,符号等)
[解决办法]
看Windows核心编程第二章,里面有个关于中文范围的问题,我记得是两个区域的。

[解决办法]
能写在TXT文件里面的对英文来讲都是可见字符,中文的字符集第1个字节应该有个范围。你查查看中文字符的acscii 范围 就知道了。
[解决办法]
bool isChineseChar(const char ch)
{
return ( ch & 0x80);
}

int main()
{
char* p = "aaa你123$%^&好 ";

for (int i = 0; i < strlen(p); i++)
{
if (isChineseChar(p[i]))
cout < < "第 " < <i < < " 个char是中文 " < <endl;
}

return 0;
}

[解决办法]
通过字节的高位来判断,ASCII码不超过OX80

读书人网 >C++

热点推荐