:: reverse dictionary ::
※ソースファイルについて
ワイド文字をマルチバイト文字に変換するには、wctomb 関数を使います。
#include <locale.h> #include <stdlib.h>
wchar_t wc = L'a'; char mb; int len; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ len = wctomb(&mb, wc);
len は 1 、mb は 'a' になります。
int wctomb(char *mb, wchar_t wc)
ワイド文字 wc をマルチバイト文字に変換します。
変換したマルチバイト文字は、mb に格納されます。
変換に成功した場合は、変換した文字のバイト数を返します。
変換に失敗した場合は -1 を返します。
(現在のロケールで変換できない場合)
wc が NULL文字( L'\0' )の場合は 1 を返します。
mb … 変換したマルチバイト文字を格納する変数へのポインタ
wc … 変換するワイド文字へのポインタ
・変換に成功 … 変換した文字のバイト数
・変換に失敗 … -1
・wc が NULL文字 … 1
全角文字の場合は、mb に文字列を指定します。
#include <locale.h> #include <memory.h> #include <stdlib.h>
wchar_t wc = L'あ'; char mbs[10]; int len; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ memset(mbs, 0, sizeof(mbs)); /* NULL文字で初期化 */ len = wctomb(mbs, wc);
len は 2 、mbs は "あ" になります。
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com