wctomb
stdlib.h:インデックス への移動
ヘッダーファイル
stdlib.h
カテゴリ
変換ルーチン,メモリおよび文字列操作ルーチン
プロトタイプ
int wctomb(char *s, wchar_t wc);
説明
wchar_t コードをマルチバイト文字に変換します。
s が NULL でない場合,wctomb は,wc に対応するマルチバイト文字を表すために必要なバイト数を判定します(シフト状態の変更を含む)。マルチバイト文字は s に格納されます。最大 MB_CUR_MAX 文字までが格納されます。wc の値が 0 の場合,wctomb は初期状態のままになります。
wctomb の動作は,現在のロケールの LC_CTYPE カテゴリの設定に依存します。
戻り値
s がヌルポインタの場合,wctomb は,マルチバイト文字のエンコードが状態に依存する場合は 0 以外の値を返し,状態に依存しない場合は 0 を返します。
s がヌルポインタではなく,wc の値が有効なマルチバイト文字を表さない場合,wctomb は -1 を返します。その他の場合,wctomb は,wc に対応するマルチバイト文字に含まれるバイト数を返します。MB_CUR_MAX マクロの値より大きな値が返されることはありません。
例
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int x;
wchar_t wc = L'a';
char *pmbNULL = NULL;
char *pmb = (char *)malloc(sizeof( char ));
printf (" Convert a wchar_t array into a multibyte string:\n");
x = wctomb( pmb, wc);
printf ("Character converted: %u\n", x);
printf ("Multibyte string: %1s\n\n",pmb);
printf (" Convert when target is NULL\n");
x = wctomb( pmbNULL, wc);
printf ("Character converted: %u\n",x);
printf ("Multibyte stri ng: %1s\n\n",pmbNULL);
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |