Oracle Solaris Studio 12.2: C ユーザーガイド

6.9.4 新しい関数

新しい標準関数として、特定のロケールに依存する機能が追加されました。ロケール自身を制御する setlocale() 以外にも、ANSI/ISO C 規格には次の新しい関数が導入されました。

localeconv()

数値/通貨の規約 

strcoll()

2 つの文字列の照合順序 

strxfrm()

照合のために文字列を変換する 

strftime()

日付と時刻の形式を決定する 

さらに、複数バイト関数 mblen()mbtowc()mbstowcs()wctomb()、および wcstombs() があります。

localeconv() 関数は、現在のロケールの LC_NUMERICLC_MONETARY カテゴリに適切な、書式化された数値および通貨の情報に便利な情報を含む構造体へのポインタを返します。この関数は、動作が複数のカテゴリに依存する唯一の関数です。数値の場合、構造体は、小数点文字、千単位区切り文字、および区切り文字を置く場所を記述します。通貨値を書式化する方法を記述する構造体のメンバーは、ほかにも 15 個あります。

strcoll() 関数は、strcmp() 関数と似ていますが、現在のロケールの LC_COLLATE カテゴリに従って、2 つの文字列を比較するところが異なります。strxfrm() 関数は、変換後の 2 つの文字列を strcmp() に渡すと、変換前の 2 つの文字列を strcoll() に渡した場合に返される順番と似た順番が返されるように、文字列を別の文字列に変換します。

strftime() 関数は、struct tm に値を持つ sprintf() で使用される書式化と似た書式化と、さらに、現在のロケールの LC_TIME カテゴリに依存する日付と時刻の書式を提供します。この関数は、UNIX System V Release 3.2 の一部としてリリースされた ascftime() 関数に基づいています。