isspace()是否接受getchar()值?
如果输入为
representable as
unsigned char 或等于EOF,则
isspace() 有效.
当getchar()!= EOF;所有getchar()返回的值都可以表示为unsigned char吗? uintmax_t count_space = 0; for (int c; (c = getchar()) != EOF; ) if (isspace(c)) ++count_space; 愿这段代码导致未定义的行为吗? 解决方法
根据C11
WG14 draft version N1570:
即, > isspace()接受getchar()值 如果你认为它太明显了(“它还能做什么”),那就再想一想.例如,在the related case:isspace(CHAR_MIN)可能是未定义的,即,将字符传递给字符分类函数可能是未定义的行为! 如果UCHAR_MAX> INT_MAX结果可能是实现定义的:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |