在C++中,如何判断一个数据的类型?

请用数据结构的知识回答:想统计一片文章的汉字、字母、数字的个数,但是应该用什么函数来返回数据类型呢?如果没有此类函数,那么用什么算法来解决?... 请用数据结构的知识回答: 想统计一片文章的汉字、字母、数字的个数,但是应该用什么函数来返回数据类型呢? 如果没有此类函数,那么用什么算法来解决? 展开
 我来答
路媚阎玲然
2019-07-03 · TA获得超过3768个赞
知道大有可为答主
回答量:3118
采纳率:27%
帮助的人:230万
展开全部
由于使用ASCII码编码,ASCII码定义了255个字符.
所以呢,字母就在'A'~'Z','a'~'z'之间,数字就是48~58之间.
但是由于汉字是双字节的,其字节不在0~255内,
所以可以单独判断汉字
if(RichEdit1->Lines->String[i]&0x80==1)//如果为真则为汉字.
其中RichEdit1->Lines->String[i+1]为汉字后半部分.
写如下程序
//使用RichEdit
int
hanzi=zimu=shuzi=0;
for(int
i=0;i<RichEdit1->Count;i++)
{
if(RichEdit1->Lines->String[i]&0x80==1)
{
i++;
hanzi++;
}
else
if(RichEdit1->Lines->String[i]<='z'&&RichEdit1->Lines->String[i]>='a'||RichEdit1->Lines->String[i]>='A'&&RichEdit1->Lines->String[i]<='Z')
zimu++;
else
if(RichEdit1->Lines->String[i]>'0'&&RichEdit1->Lines->String[i]<'9')
shuzi++;
}
但是有一种情况,如使用全角的数字或字母:A,B,C,1,2,3那么这种会当作汉字来处理,因为它属于汉字字模.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式