トップページ > キーワード検索 > wctomb()
C言語規格
C言語(その他)
プログラム
その他
wctomb()
機能 ワイド文字を多バイト文字に変換する。
地域(LC_CTYPE部門)によって結果は異なる
定義 #include <stdlib.h>

int wctomb( char * s, wchar_t wc );
引数
s変換した多バイト文字の格納先
wc変換するワイド文字
戻り値 引数wcが正しい多バイト文字を形成する場合、多バイト文字を構成するバイト数を返す。(MB_CUR_MAXの値を超える事はない)
正しい多バイト文字を形成しない場合は、-1を返す。
実装例
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>

int main(void)
{
    char mbs[5];
    int ret;
    
    /* Cロケール環境 */
    printf("locale='%s'\n", setlocale(LC_CTYPE, NULL));
    ret = wctomb(mbs, L'a');    /* 1バイト文字 */
    printf("%d: %.*s\n", ret, ret, mbs);
    ret = wctomb(mbs, L'あ');   /* 2バイト文字 */
    printf("%d: %.*s\n", ret, ret, mbs);
    
    /* 日本ロケール環境 */
    printf("locale='%s'\n", setlocale(LC_CTYPE, "Japanese"));
    ret = wctomb(mbs, L'a');    /* 1バイト文字 */
    printf("%d: %.*s\n", ret, ret, mbs);
    ret = wctomb(mbs, L'あ');   /* 2バイト文字 */
    printf("%d: %.*s\n", ret, ret, mbs);
    
    return 0;
}
実行結果
locale='C'
1: a
-1:
locale='Japanese_Japan.932'
1: a
2: あ





inserted by FC2 system