一个判定数字、字母、字符的函数问题。

boymeng 2009-07-27 11:13:02
int sta(char c)
{
if(c>=48&&c<=57)return 0;
if((c>=65&&c<=90)||(c>=97&&c<=122))return 1;
return 2;
}

如上面所示,现在

char str[]={'a','e','4','%','8','!','F','1',':','/'};

取str中的每一个元素做函数sta的变量。
问:函数sta是如何分辨str中的元素是数字、字母、还是字符。那个变量与数字的大小比较是什么意思。为什么这样比较就能分辨出来呢。
本人初学者。望高手赐教。不胜感激。

#include<iostream>
using namespace std;
int sta(char c);
int main()
{
int number=0,letter=0,other=0;
char str[]={'a','e','4','%','8','!','F','1',':','/'};
for(int i=0;i<sizeof(str);i++)
{
cout<<str[i];
switch(sta(str[i]))
{
case 0:
number++;
break;
case 1:
letter++;
break;
case 2:
other++;
break;
}
}
cout<<endl<<number<<endl;
cout<<letter<<endl;
cout<<other<<endl;
return 0;
}
int sta(char c)
{
if(c>=48&&c<=57)return 0;
if((c>=65&&c<=90)||(c>=97&&c<=122))return 1;
return 2;
}

...全文
43 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
luotuo512 2009-07-27
  • 打赏
  • 举报
回复
数字的ascii码是30~39
字母的ascii码大小写分别是从41开始,61开始,
其他的是一些字符。
上述中的数字都是16进制的,转换到10进制就是楼主程序中的数字。
mstlq 2009-07-27
  • 打赏
  • 举报
回复
48=='0'
57=='9'

65=='A'
90=='Z'

97=='a'
122='z'

请楼主自行对照ascii码表^_^
liao05050075 2009-07-27
  • 打赏
  • 举报
回复
字符在内存中是以ASCII码的形式保存的。

具体你搜索一下ASCII码就知道了
mengjfu 2009-07-27
  • 打赏
  • 举报
回复
if(c>=48&&c<=57)return 0;//数字
if((c>=65&&c<=90)||(c>=97&&c<=122))return 1;//字母
return 2;//其他
mengjfu 2009-07-27
  • 打赏
  • 举报
回复
ascii码48到57是数字
65到90是大写字母
97到122是小写

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧