wctomb, _wctomb_l

ワイド文字を対応するマルチバイト文字に変換します。 これらの関数のセキュリティを強化したバージョンを使用できます。「wctomb_s_wctomb_s_l」を参照してください。

構文

int wctomb(
   char *mbchar,
   wchar_t wchar
);
int _wctomb_l(
   char *mbchar,
   wchar_t wchar,
   _locale_t locale
);

パラメーター

mbchar
マルチバイト文字のアドレス。

wchar
ワイド文字。

戻り値

wctomb がワイド文字をマルチバイト文字に変換する場合、ワイド文字のバイト数 (常に MB_CUR_MAX 以内) を返します。 wchar がワイド文字の null 文字 (L'\0') の場合、wctomb 1 を返します。 ターゲット ポインターmbcharが 0 の場合はNULLwctomb、0 を返します。 現在のロケールで変換できない場合は、-1 を返しerrnowctomb次にEILSEQ設定します。

解説

wctomb 関数はその wchar 引数を対応するマルチバイト文字に変換し、結果を mbchar に格納します。 任意のプログラムの任意のポイントからこの関数を呼び出すことができます。 wctomb は、ロケールに依存するあらゆる動作に現在のロケールを使用します。_wctomb_l は、渡されたロケールを代わりに使用することを除いて wctomb と同じです。 詳細については、「 Locale」を参照してください。

wctomb はそのパラメーターを検証します。 有効な場合mbcharNULL、「パラメーターの検証」の説明に従って、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、 errnoEINVAL に設定され、関数から -1 が返されます。

既定では、この関数のグローバル状態の適用対象は、アプリケーションになります。 この動作を変更するには、「CRT のグローバル状態」を参照してください

必要条件

ルーチンによって返される値 必須ヘッダー
wctomb <stdlib.h>

互換性の詳細については、「 Compatibility」を参照してください。

このプログラムは、wctomb 関数の動作を示しています。

// crt_wctomb.cpp
// compile with: /W3
#include <stdio.h>
#include <stdlib.h>

int main( void )
{
   int i;
   wchar_t wc = L'a';
   char *pmb = (char *)malloc( MB_CUR_MAX );

   printf( "Convert a wide character:\n" );
   i = wctomb( pmb, wc ); // C4996
   // Note: wctomb is deprecated; consider using wctomb_s
   printf( "   Characters converted: %u\n", i );
   printf( "   Multibyte character: %.1s\n\n", pmb );
}
Convert a wide character:
   Characters converted: 1
   Multibyte character: a

関連項目

データ変換
ロケール
_mbclen, mblen, _mblen_l
mbstowcs, _mbstowcs_l
mbtowc, _mbtowc_l
wcstombs, _wcstombs_l
WideCharToMultiByte