機能 |
ワイド文字列を多バイト文字列に変換する。 ※ 地域(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 ); |
||||||
引数 |
|
||||||
戻り値 |
引数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: あいうえお |
wcstombs()