C言語編 標準ライブラリのリファレンス wcstombs

先頭へ戻る

wcstombs関数

概要 ワイド文字列をマルチバイト文字列に変換する。
ヘッダ stdlib.h
形式 size_t wcstombs(char* s, const wchar_t* ws, size_t n);
引数 s 変換結果を受け取るメモリアドレス。
ws 変換対象のワイド文字列。
n 変換する最大文字数。変換後のマルチバイト文字列の文字数で指定する。
戻り値 変換後のマルチバイト文字列の文字数。終端文字の分はカウントしない。
失敗した場合には、-1 を size_t型にキャストした値が返される。
詳細 引数ws の各文字を、wctomb関数で変換することと同等。 引数ws の末尾に達するか、引数s に書き込まれた文字数が、引数n で指定した値に達したときに正常終了する。
注意
使用例
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>

#define SIZE_OF_ARRAY(array) (sizeof(array)/sizeof(array[0]))

int main(void)
{
	const wchar_t ws[] = L"あいうえお";
	char mbs[16];
	size_t len;

	setlocale( LC_CTYPE, "" );

	len = wcstombs( mbs, ws, SIZE_OF_ARRAY(mbs) );
	if( len == (size_t)-1 ){
		fputs( "error\n", stderr );
		exit( EXIT_FAILURE );
	}

	printf( "%s\n", mbs );

	return 0;
}

実行結果:

あいうえお
関連 逆方向の変換であるマルチバイト文字列からワイド文字列への変換は、mbstowcs関数で行える。
解説章


参考リンク



更新履歴

'2018/1/22 新規作成。



標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ


はてなブックマーク Pocket に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS
管理者情報 プライバシーポリシー