某些语言环境相关的功能是以新标准函数的形式添加的。除了 setlocale()(它允许控制语言环境本身)之外,该标准还包括以下新函数:
localeconv() |
数值/货币转换 |
strcoll() |
两个字符串的整理顺序 |
strxfrm() |
转换字符串以便整理 |
strxfrm() |
转换字符串以便整理 |
此外,还有多字节函数 mblen()、mbtowc()、mbstowcs()、wctomb() 和 wcstombs()。
localeconv() 函数返回一个指针,该指针指向包含对设置数值格式有用的信息以及适合当前语言环境的 LC_NUMERIC 和 LC_MONETARY 种类的货币信息的结构。这是唯一的一个其行为依赖于多个种类的函数。对于数值,结构描述小数点字符、千位分隔符和分隔符应在的位置。有十五个描述如何格式化货币值的其他结构成员。
strcoll() 函数类似于 strcmp() 函数,只是它根据当前语言环境的 LC_COLLATE 种类比较两个字符串。strxfrm() 函数也可用于将一个字符串转换为另一个字符串, 以便任何两个此类转换后字符串均可以传递到 strcmp(),并且可获得与 strcoll() 传递两个预转换字符串时返回的排序类似的排序。
strftime() 函数提供与 sprintf() 对 struct tm 中的值使用的格式设置类似的格式设置,并提供依赖当前语言环境的 LC_TIME 种类的某些日期和时间表示。此函数基于 ascftime() 函数,后者作为 UNIX System V 发行版 3.2 的一部分发行。