機能 |
ワイド文字を多バイト文字に変換する。 ※ 地域(LC_CTYPE部門)によって結果は異なる |
||||
---|---|---|---|---|---|
定義 |
#include <stdlib.h> int wctomb( char * s, wchar_t wc ); |
||||
引数 |
|
||||
戻り値 |
引数wcが正しい多バイト文字を形成する場合、多バイト文字を構成するバイト数を返す。(MB_CUR_MAXの値を超える事はない) 正しい多バイト文字を形成しない場合は、-1を返す。 |
||||
実装例 |
#include <stdlib.h> #include <stdio.h> #include <locale.h> int main(void) { char mbs[5]; int ret; /* Cロケール環境 */ printf("locale='%s'\n", setlocale(LC_CTYPE, NULL)); ret = wctomb(mbs, L'a'); /* 1バイト文字 */ printf("%d: %.*s\n", ret, ret, mbs); ret = wctomb(mbs, L'あ'); /* 2バイト文字 */ printf("%d: %.*s\n", ret, ret, mbs); /* 日本ロケール環境 */ printf("locale='%s'\n", setlocale(LC_CTYPE, "Japanese")); ret = wctomb(mbs, L'a'); /* 1バイト文字 */ printf("%d: %.*s\n", ret, ret, mbs); ret = wctomb(mbs, L'あ'); /* 2バイト文字 */ printf("%d: %.*s\n", ret, ret, mbs); return 0; } |
||||
実行結果 |
locale='C' 1: a -1: locale='Japanese_Japan.932' 1: a 2: あ |
wctomb()