Sun Studio 12:C 用户指南

6.9.3 更改的函数

只要可能并且适当,就会将现有库函数扩展为包括与语言环境相关的行为。这些函数分为两组:

对于附加字符,如果当前语言环境的 LC_CTYPE 种类不是 "C",则除 isdigit()isxdigit() 之外的所有 ctype.h 判定函数都可返回非零(真)值。在西班牙语言环境中,isalpha(’ñ’) 应为真。同样,字符转换函数 tolower()toupper() 应相应地处理 isalpha() 函数标识的任何额外字母字符。ctype.h 函数通常是使用由字符参数索引的查表而实现的宏。通过将表重新设置为新语言环境的值可更改这些函数的行为,因此没有性能影响。

当前语言环境的 LC_NUMERIC 种类不是 "C" 时,写入或解释可打印浮点值的那些函数可以更改为使用非句点 (.) 的小数点字符。不存在将任何数值转换为包含千位分隔符类型字符的可打印形式的规定。从可打印形式转换为内部形式时,允许实现接受此类附加形式,同样是在非 "C" 语言环境中。使用小数点字符的函数是 printf()scanf() 系列、atof() 以及 strtod()。允许实现定义的扩展的函数是 atof()atoi()atol()strtod()strtol()strtoul()scanf() 系列。