フォーマット
#include <wchar.h> size_t wcsxfrm (wchar_t *wcs1, const wchar_t *wcs2, size_t n);
言語レベル: XPG4
スレッド・セーフ: はい。
ロケール依存: コンパイル・コマンドで LOCALETYPE(*LOCALE) が指定される場合、この関数の振る舞いは、現行ロケールの LC_COLLATE カテゴリーの影響を 受ける可能性があります。また、コンパイル・コマンドで LOCALETYPE(*LOCALEUTF) が指定される場合、この関数の振る舞いは、現行ロケールの LC_UNI_COLLATE カテゴリーの 影響も受ける可能性があります。 この関数は、コンパイル・コマンドで LOCALETYPE(*LOCALEUCS2) が指定される場合は サポートされません。この関数は、コンパイル・コマンドに対して LOCALETYPE(*CLD) が指定されている場合には使用できません。詳細については、CCSID およびロケールの理解を参照してください。
ワイド文字関数: 詳細については、ワイド文字 を参照してください。
説明
wcsxfrm() 関数は、 wcs2 が指すワイド文字ストリングを文字照合重みを 表示する値に変形し、結果のワイド文字ストリングを wcs1 が指すワイド文字ストリングに配置します。
戻り値
wcsxfrm() 関数は、変形されたワイド文字ストリングの長さ (終了ヌル・ワイド文字コードは除く) を戻します。戻された値が n またはそれを超える場合には、wcs1 が指す配列の内容は保証されません。
wcsxfrm() が正常に実行されなかった場合、errno が変更されます。errno の値は、 EINVAL (wcs1 または wcs2 引数に、現行ロケールで使用不可の文字が 含まれている) に設定される可能性があります。
wcsxfrm() の使用例
#include <stdio.h> #include <wchar.h> int main(void) { wchar_t *wcs; wchar_t buffer[80]; int length; printf("Type in a string of characters.¥n "); wcs = fgetws(buffer, 80, stdin); length = wcsxfrm(NULL, wcs, 0); printf("You would need a %d element array to hold the wide string¥n", length); printf("¥n¥n%S¥n¥n transformed according", wcs); printf(" to this program's locale. ¥n"); }
関連情報