请问检测输入的是不是汉字怎么写?用C++

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:03:09
bool checknum(string str)
{
for(int i=0;i<str.length();i++)
{
if((str[i]>'9'||str[i]<'0')&&str[i]!='.')
{
return false;
}
return true;
}
}
这是用来检测输入的是不是数字 那汉字呢? 不行的话,检测输入的是不是字母也行

检测一下输入值的ASCII就可以了,48-57是数字,大写字母65到90,小写97-122。中文是扩展ASCII表里ASCII值在254之后,具体的你自己看这个ASCII码表吧。http://www.weste.net/tools/ASCII.asp
在C++里面比较的时候直接就用if A > 65就表示比较变量A的ASCII值是不是大于65了,不用把变量转换成ASCII码值的。

if (('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z'))
这句可以判断c是否为英文字母

汉字的编码比较复杂,一个汉字的编码占两个字节,其中第一个字节必定大于0x7f,以便与ASCII字符区分开。但是,第一个字节大于0x7f的,未必是汉字,它可能是日文等。故判断汉字没有明确的直接的方法。

我的思想:
汉字不在ASCII中。你可以根据ASCII来试试。

不是ascii码就是汉字啊..呵呵...