wcstombs
stdlib.h:インデックス への移動
ヘッダーファイル
stdlib.h
カテゴリ
変換ルーチン,メモリおよび文字列操作ルーチン
プロトタイプ
size_t wcstombs(char *s, const wchar_t *pwcs, size_t n);
説明
wchar_t 配列をマルチバイト文字列に変換します。
wcstombs は,pwcs に含まれる wchar_t 型の要素をマルチバイト文字列 s に変換します。ヌル文字または無効なマルチバイト文字が検出されると,処理は終了します。
変更される最大バイト数は n バイトです。ヌル文字に到達する前に n バイトが処理された場合,配列 s はヌルで終わりません。
wcstombs の動作は,現在のロケールの LC_CTYPE カテゴリの設定に依存します。
戻り値
無効なマルチバイト文字が検出された場合,wcstombs は,(size_t) -1 を返します。そうでない場合,この関数は,変更されたバイト数を返します。終了コード(ある場合)は含まれません。
例
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
int x;
char *pbuf = (char*)malloc( MB_CUR_MAX);
wchar_t *pwcsEOL = L'\0';
char *pwchi= L"Hi there!";
printf (" Convert entire wchar string into a multibyte string:\n");
x = wcstombs( pbuf, pwchi,MB_CUR_MAX);
printf ("Character converted: %u\n", x);
printf ("Multibyte string character: %1s\n\n",pbuf);
printf (" Convert when target is NULL\n");
x = wcstombs( pbuf, pwcsEOL, MB_CUR_MAX);
printf ("Character converted: %u\n",x);
printf ("Multibyte string: %1s\n\n",pbuf);
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |