:: reverse dictionary ::
※ソースファイルについて
マルチバイト文字列をワイド文字列に変換するには、mbstowcs 関数を使います。
#include <locale.h> #include <stdio.h> #include <stdlib.h>
char mbs[] = "Cプログラム"; wchar_t wcs[32]; int len; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ len = mbstowcs(wcs, mbs, 32); if (len == -1) { printf("変換に失敗しました。 [%s]\n", mbs); return EXIT_FAILURE; }
wcs は "Cプログラム" になります。
size_t mbstowcs(wchar_t *wcs, const char *mbs, size_t sz)
マルチバイト文字列 mbs の sz 文字分をワイド文字列に変換します。
変換したワイド文字列は、wcs に格納されます。
変換に成功した場合は変換した文字数、失敗した場合は -1 を返します。
wcs に NULL を指定した場合は、変換後の文字数を返します。
char mbs[] = "Cプログラム"; int len; setlocale(LC_ALL, "ja"); /* ロケールを日本語に設定 */ len = mbstowcs(NULL, mbs, 0);
len は 6 になります。
なお、「戻り値 = sz」になる場合、ワイド文字列の終わりに NULL文字は付きません。 NULL文字を付けたい場合は、sz に変換後の文字数を超える値を指定します。
len = mbstowcs(NULL, mbs, 0); len = mbstowcs(wcs, mbs, len + 1);
wcs … ワイド文字列を格納する文字列バッファ
mbs … マルチバイト文字列
sz … 変換する文字数
・変換に成功した場合 … 変換した文字数
・変換に失敗した場合 … -1
・ wcs に NULL を指定した場合 … 変換後の文字数
Copyright (C) 2005-2007 Noto Watabe. All rights reserved.
e-mail:wmh@always-pg.com