【发布时间】:2014-11-27 05:17:09
【问题描述】:
以下两行,关于 islower() 和 isupper(),在 Mike Banahan (Link: Section 9.3) 的 C 书的同一段落中给出:
islower(int c)
如果 c 是小写字母则为真。也是真的 对于实现定义的不返回的字符集 iscntrl、isdigit、ispunct 或 isspace 中的任何一个的真实结果。在里面 C 语言环境,这组额外的字符是空的。
isupper(int c)
如果 c 是大写字母字符,则为真。还 true 对于实现定义的字符集,不 从 iscntrl、isdigit、ispunct 或 isspace 中的任何一个返回真实结果。 在 C 语言环境中,这组额外的字符是空的。
你能解释一下,如果一个字符不从 iscntrl、isdigit、ispunct 或 isspace 中的任何一个返回真实结果,那么它如何导致两者都返回真实结果功能?据我所知,一个字符可以是小写,也可以是大写,不能两者兼有(假设我们谈论的是具有这种区别的字符集......大多数欧洲语言都有)。
【问题讨论】:
-
如果一个确实为 iscntrl、isdigit、ispunct 或 isspace 之一返回 true 的字符也为 islower 或 isupper 返回 true,我会更加惊讶!
-
@PeterSchneider 这部分我理解,因为如果一个字符对你提到的任何函数返回 true,它就不是字母表......