標準/拡張機能 | C/C++ | 依存項目 |
---|---|---|
ISO C 改訂 |
両方 |
#include <stdlib.h>
int wctomb(char *string, wchar_t character);
character の wchar_t 値を、string が指すマルチバイト配列に変換します。character の値が 0 の場合には、関数は初期シフト状態のまま残ります。wctomb() は、最大で MB_CUR_MAX 個の文字を string に保管します。
このワイド文字関数の動作は、現行ロケールの LC_CTYPE カテゴリーの影響を受けます。 カテゴリーを変更すると、未定義の結果が発生する可能性があります。
正常に実行された場合、wctomb() は、マルチバイト文字の長さ (バイト単位) を戻します。
character が有効なマルチバイト文字でない場合、wctomb() は値 -1 を戻します。
string が NULL ポインターの場合、wctomb() はシフト依存のエンコードが使用されるとゼロ以外を戻し、そうでない場合は 0 を戻します。
⁄* CELEBW30
This example converts the wide character c to a character using wctomb().
*⁄
#include <stdio.h>
#include <stdlib.h>
#define SIZE 40
int main(void)
{
static char buffer[ SIZE ];
wchar_t wch = L'c';
int length;
length = wctomb( buffer, wch );
printf( "The number of bytes that comprise the multibyte "
"character is %i¥n", length );
printf( "And the converted string is ¥"%s¥"¥n", buffer );
}
The number of bytes that comprise the multibyte character is 1
And the converted string is "c"