对于char c; 判断c不是大或小写字母的表达式(不是返回1,否则返回0)为?
答案给的是(c<’a’||c>’z’)&&(c<’A’||C>’Z’)
可不可以写为(!(c>’a’&&c<’z’))&&(!(c>’A’||c<’Z’))_
谢谢!
该回答引用GPTᴼᴾᴱᴺᴬᴵ
这两个表达式的逻辑是等价的,都表示如果c不是大写字母和小写字母,则返回1,否则返回0。
-
然而,第二个表达式存在一个逻辑错误,应该是 (!(c>='a'&&c<='z')) && (!(c>='A'&&c<='Z'))。原因是逻辑非操作符 ! 会先将后面的表达式求值,然后再对其取反。在第二个表达式中,第一个括号内应该是 "c>='a'" 而不是 "c>'a'",否则表达式会忽略字母'a'本身。
-
因此,第一个表达式 (c<'a' || c>'z') && (c<'A' || c>'Z') 更为严谨和可靠。
下面的少等号
不知道你这个问题是否已经解决, 如果还没有解决的话: