wctomb、_wctomb_lwctomb, _wctomb_l

ワイド文字を対応するマルチバイト文字に変換します。Convert a wide character to the corresponding multibyte character. これらの関数のセキュリティを強化したバージョンを使用できます。「wctomb_s、_wctomb_s_l」を参照してください。More secure versions of these functions are available; see wctomb_s, _wctomb_s_l.

構文Syntax

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

パラメーターParameters

mbcharmbchar
マルチバイト文字のアドレス。The address of a multibyte character.

wcharwchar
ワイド文字。A wide character.

戻り値Return Value

Wctombがワイド文字をマルチバイト文字に変換する場合は、ワイド文字のバイト数 ( MB_CUR_MAXを超えない) を返します。If wctomb converts the wide character to a multibyte character, it returns the number of bytes (which is never greater than MB_CUR_MAX) in the wide character. Wcharがワイド文字の null 文字 (L ' \ 0 ') の場合、 wctombは1を返します。If wchar is the wide-character null character (L'\0'), wctomb returns 1. ターゲットポインター mbcharNULLの場合、 wctombは0を返します。If the target pointer mbchar is NULL, wctomb returns 0. 現在のロケールで変換できない場合、 wctombは-1 を返し、 errnoEILSEQに設定されます。If the conversion is not possible in the current locale, wctomb returns -1 and errno is set to EILSEQ.

解説Remarks

Wctomb関数は、 wchar引数を対応するマルチバイト文字に変換し、その結果をmbcharに格納します。The wctomb function converts its wchar argument to the corresponding multibyte character and stores the result at mbchar. 任意のプログラムの任意のポイントからこの関数を呼び出すことができます。You can call the function from any point in any program. wctombは、ロケールに依存する動作に現在のロケールを使用します。_wctomb_lは、渡されたロケールを代わりに使用する点を除いて、 wctombと同じです。wctomb uses the current locale for any locale-dependent behavior; _wctomb_l is identical to wctomb except that it uses the locale passed in instead. 詳細については、「 Locale」を参照してください。For more information, see Locale.

wctombは、そのパラメーターを検証します。wctomb validates its parameters. MbcharNULLの場合は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーが呼び出されます。If mbchar is NULL, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合、 errnoEINVALに設定され、この関数は-1 を返します。If execution is allowed to continue, errno is set to EINVAL and the function returns -1.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.

必要条件Requirements

ルーチンRoutine 必須ヘッダーRequired header
wctombwctomb <stdlib.h><stdlib.h>

互換性の詳細については、「互換性」を参照してください。For additional compatibility information, see Compatibility.

Example

このプログラムは、wctomb 関数の動作を示しています。This program illustrates the behavior of the wctomb function.

// 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

関連項目See also

データ変換Data Conversion
Locale
_mbclen、mblen、_mblen_l_mbclen, mblen, _mblen_l
mbstowcs、_mbstowcs_lmbstowcs, _mbstowcs_l
mbtowc、_mbtowc_lmbtowc, _mbtowc_l
wcstombs、_wcstombs_lwcstombs, _wcstombs_l
WideCharToMultiByteWideCharToMultiByte