prev up next   top/contents search

comp.lang.c FAQ 列表· 问题 13.5

为什么某些版本的toupper在给定大写字母时表现异常?
为什么有些代码会在调用islower之前先调用toupper?


A在早期,toupper是类似函数的预处理器宏,并且被定义为只能处理小写字母;如果应用于数字、标点符号或已经是大写的字母,它就会行为异常。类似地,tolower只能处理大写字母。因此,旧代码(或为广泛可移植性而编写的代码)倾向于在调用islower之前先调用toupper,而isupper之前先调用tolower.

C 标准则规定,touppertolower必须正确处理所有字符,即不需要更改的字符将保持不变。

参考:ISO Sec. 7.3.2
H&S Sec. 12.9 pp. 320-1
PCS p. 182


prev up next   contents search
关于此 FAQ 列表   关于 Eskimo   搜索   反馈   版权

Eskimo North 托管