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

size_t wcstombs( char * s, const wchar_t * pwcs, size_t n );

※C99規格では以下の定義となる
size_t wcstombs( char * restrict s, const wchar_t * restrict pwcs, size_t n );
引数
s変換した多バイト文字列の格納先
pwcs変換するワイド文字列
n検査する最大文字数
戻り値 引数pwcsが正しいワイド文字列を形成する場合、変換した文字数を返す。
正しいワイド文字列を形成しない場合は、-1を返す。
実装例
#include <stdlib.h>
#include <stdio.h>
#include <locale.h>

int main(void)
{
    char mbs[20];
    size_t ret;
    
    /* Cロケール環境 */
    printf("locale='%s'\n", setlocale(LC_CTYPE, NULL));
    ret = wcstombs(mbs, L"あいうえお", 20);
    if (-1 != ret) {
        printf("%d: %s\n", ret, mbs);
    }
    
    /* 日本ロケール環境 */
    printf("locale='%s'\n", setlocale(LC_CTYPE, "Japanese"));
    ret = wcstombs(mbs, L"あいうえお", 20);
    if (-1 != ret) {
        printf("%d: %s\n", ret, mbs);
    }
    
    return 0;
}
実行結果
locale='C'
locale='Japanese_Japan.932'
10: あいうえお





inserted by FC2 system