C言語 ワイド文字からマルチバイト文字に変換 - stdlib.h - [ wctomb ]
2008.11.09 Sunday | by LRESULT
ワイド文字からマルチバイト文字に変換するには、wctomb()を使います。
※ ワイド文字・マルチバイト文字に関しては、こちら。
※ wctomb()は、ロケールのLC_CTYPEの設定に依存する為、
日本語のマルチバイト文字を扱う際には、setlocale( LC_CTYPE, "jpn" )
という設定が必要になります。
書式 | int wctomb( char *s, wchar_t wc ) |
---|---|
機能 | ワイド文字からマルチバイト文字に変換 |
引数 | char *s : 変換したマルチバイト文字を格納するポインタ wchar_t wc : 変換元のワイド文字 |
戻り値 | 成功すると、マルチバイト文字のバイト数を返し、 失敗すると、-1を返します。 |
ワイド文字の「あ」をマルチバイト文字の「あ」に変換してみます。 |
---|
#include <stdio.h> |
マルチバイト文字長は 2バイト マルチバイト文字は あ |
---|
と、表示されます。 ワイド文字として文字を設定する際には、文字の前に L を追加します。 2バイト文字の「あ」を表示するには、%c%c で何故か表示されました。 おそらく、VC8の独自拡張だと思いますが、よく分かりません。 |