谁能帮我解释下if(c>=65&&c<=90||c>=97&&c<=122)的意思!
发布网友
发布时间:2022-05-12 13:28
我来回答
共5个回答
热心网友
时间:2023-10-09 16:12
因为A的ASCII码是65,Z是90,a是97,z是122,
也就是说
if(c>=65&&c<=90||c>=97&&c<=122) 判断输入的字符是不是一个字母,如果是就把它输出
实际上表示字母一般不直接用数字,把字母加上单引号就行,例如'a'等价于97
上面语句规范来说应该写成
if(c>='A'&&c<='Z'||c>='a'&&c<='z')
至于输入数字的时候,它的字符不在这个范围内,就不输出了。如果要把数字也一起输出,应该写成
if(c>='A'&&c<='Z'||c>='a'&&c<='z'||c>='0'&&c<='9')
注意&&的优先级比||高一级
热心网友
时间:2023-10-09 16:12
http://ke.baidu.com/image/f6428f8f7c5d36e9503d9262
if(c>=65&&c<=90||c>=97&&c<=122)
这里只判断了大写字母和小写字母..
=================
【雨泪】 00:33:57
if(c>=65&&c<=90||c>=97&&c<=122)
吻吻 00:34:11
......... 晕.. 那么多回答你都没看懂??
【雨泪】 00:34:16
应该是48-57是数字的存储吧
吻吻 00:34:34
48到57
是的..
97-122是小写字母
65到90是大写字母
【雨泪】 00:35:21
看懂了,我只是不知道?为什么if(c>=65&&c<=90||c>=97&&c<=122) 这语句输出是根据ASCII码来的
吻吻 00:35:25
if(c>=65&&c<=90||c>=97&&c<=122||c>=48&&c<=57)
你也可以直接用
c>='0'&&c<='9' 类似这弱的
这样的
【雨泪】 00:36:00
它不是判断一个数的范围么
吻吻 00:36:22
char 强制转换成 int 类型 就是 ascii 码
【雨泪】 00:36:46
那我把char改成int也不行?
吻吻 00:36:59
可以.
你用 getchar() 得到的是 char
如果你输入 1 .. 得到的就是 '1' 的ascii
【雨泪】 00:37:40
噢,那如果改成scanf就不是ASCII码了吧?
吻吻 00:38:08
scanf("%d",&a); 你要加格式 "%d" 才是int
如果你加的是 %c 就是char
【雨泪】 00:39:25
噢,似乎明白了~,我试下
热心网友
时间:2023-10-09 16:13
(c>=65&&c<=90||c>=97&&c<=122)
是26个字母的ASCII码范围~65到90是大写的,97到122是小写的
不在这个范围内不执行printf~
char类型是根据字符的ASCII码存储的
热心网友
时间:2023-10-09 16:13
c>=65&&c<=90||c>=97&&c<=122 是大小写字母ASCII 数值范围。
要输出数字要加数字的ASCII 数值范围:
if( (c>=65&&c<=90 )|| (c>=97&&c<=122) || (c>=48&&c<=57) )
热心网友
时间:2023-10-09 16:14
a~z的ASCII码对97~122,A~Z的ASCII码对应65~90