gpt4 book ai didi

c - 在 C 语言中,(实现定义的?)字符参数怎么可能对 islower() 和 isupper() 都为真?书上是这么说的

转载 作者:太空宇宙 更新时间:2023-11-04 01:04:49 25 4
gpt4 key购买 nike

关于 islower()isupper() 的下面两行在 Mike Banahan 的 C 书的同一段落中给出了 (Link: Section 9.3) :

islower(int c)

True if c is a lower case alphabetic letter. Also true for an implementation defined set of characters which do not return true results from any of iscntrl, isdigit, ispunct or isspace. In the C locale, this extra set of characters is empty.

isupper(int c)

True if c is an upper case alphabetic character. Also true for an implementation-defined set of characters which do not return true results from any of iscntrl, isdigit, ispunct or isspace. In the C locale, this extra set of characters is empty.

你能解释一下,如果一个字符不从 iscntrl、isdigit、ispunctisspace 中的任何一个返回真实结果,那么它如何导致两者的真实结果功能?据我所知,一个字符可以是小写字母,也可以是大写字母,不能同时是大写字母(假设我们谈论的是具有这种区别的字符集......大多数欧洲语言都是如此)。

最佳答案

书中的引述并未声称 isupper 和 islower 必须同时针对同一交易品种返回真值。他们只说如果使用 C 以外的其他语言环境,则可以有一些额外的符号, isupper 或 islower (或两者)可以返回 true。

考虑到 C 标准根据 isupper 和 islower 定义 isalpha

The isalpha function tests for any character for which isupper or islower is true,

尽管似乎可以同时将相同的特定于语言环境的符号视为上位和下位。即所有四种组合都是可能的。例如

isupper: false, islower: false
isupper: true, islower: false
isupper: false, islower: true
isupper: true, islower: true

C 标准有一个脚注:

200) The functions islower and isupper test true or false separately for each of these additional characters; all four combinations are possible

关于c - 在 C 语言中,(实现定义的?)字符参数怎么可能对 islower() 和 isupper() 都为真?书上是这么说的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26157063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com