如果判断一个字符是西文字符还是中文字符
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如果判断⼀个字符是西⽂字符还是中⽂字符
⼀、如果判断⼀个字符是西⽂字符还是中⽂字符
⼤家知道西⽂字符主要是指ASCII码,它⽤⼀个字节表⽰。
且这个字符转换成数字之后,该数字是⼤于0的,⽽汉字是两个字节的,第⼀个字节的转化为数字之后应该是⼩于0的,因此可以根据每个字节转化为数字之后是否⼩于0,判断它是否是汉字。
例如,设输⼊字为strin,则,
If ((0) < 0)
cout << "是汉字" << endl;
else cout << "不是汉字" << endl;
⼆、C++ 中判断字符中⽂编码
直接根据汉字的编码范围判断,对于GB2312和GBK可⽤下⾯两个程序实现。
1、判断是否是GB2312
bool isGBCode(const string& strIn)
{
unsigned char ch1;
unsigned char ch2;
if (strIn.size() >= 2)
{
ch1 = (unsigned char)strIn.at(0);
ch2 = (unsigned char)strIn.at(1);
if (ch1>=176 && ch1<=247 && ch2>=160 && ch2<=254)
return true;
else return false;
}
else return false;
}
2、判断是否是GBK编码
bool isGBKCode(const string& strIn)
{
unsigned char ch1;
unsigned char ch2;
if (strIn.size() >= 2)
{
ch1 = (unsigned char)strIn.at(0);
ch2 = (unsigned char)strIn.at(1);
if (ch1>=129 && ch1<=254 && ch2>=64 && ch2<=254)
return true;
else return false;
}
else return false;
}
3、判断是否为Big5
它的范围为:⾼字节从0xA0到0xFE,低字节从0x40到0x7E,和0xA1到0xFE两部分。
判断⼀个汉字是否是BIG5编码,可以如上对字符的编码范围判断即可。