('A'<=ch<='Z'||'a'<=ch'z')不行?

Alex5111985 2008-02-25 01:56:31
在累计输入字符时,
我用 if ('A'<=ch<='Z'||'a'<=ch'z')letter++;
else if (ch==' ')space++;
else if('0'<=ch<='9')digit++;
else other++;
这样不行;
改成 if(ch<='z'&&ch>='a'||ch<='Z'&&ch>='A') letter++;
else if(ch==' ') space++;
else if(ch<='9'&&ch>='0') digit++;
else other++;
就可以了。
这是为什么?是不是('A'<=ch<='Z'||'a'<=ch'z')这样表示是不行的?为什么?
请教朋友
...全文
185 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangliushier 2008-02-25
  • 打赏
  • 举报
回复
都有这样的错误哦
要用逻辑连接符号的&&和||的
Alex5111985 2008-02-25
  • 打赏
  • 举报
回复
原来如此,我太想当然了,草草就写了下来,呵呵。
谢谢浪花。
langhua0001 2008-02-25
  • 打赏
  • 举报
回复 1
分析一下:'A' <=ch <='Z' 等价于 ('A' <=ch) <='Z' 那么如果'A' <=ch成立则返回非零的数,通常为1.此时变为 1<='Z'

经过这样分析之后你应该知道原因了吧 你自己再思考一下吧

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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