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

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

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


wcstombs関数

概要

ワイド文字列をマルチバイト文字列に変換する。

ヘッダ

stdlib.h

形式

size_t wcstombs(char* restrict s, const wchar_t* restrict 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"あいうえお";

    setlocale(LC_CTYPE, "");

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

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

実行結果:

あいうえお

関連

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

解説章


参考リンク


更新履歴

’2018/1/22 新規作成。



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

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

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

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
X で ポストフォロー LINE で送る noteで書く
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー
先頭へ戻る