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

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

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

int main(void)
{
    wchar_t wcs[10];
    size_t ret, i;
    
    /* Cロケール環境 */
    printf("locale='%s'\n", setlocale(LC_CTYPE, NULL));
    ret = mbstowcs(wcs, "あいうえお", 10);
    printf("あいうえお={");
    for(i=0; i<ret; i++) {
        printf("%#x ", wcs[i]);
    }
    printf("}\n");
    
    /* 日本ロケール環境 */
    printf("locale='%s'\n", setlocale(LC_CTYPE, "Japanese"));
    ret = mbstowcs(wcs, "あいうえお", 10);
    printf("あいうえお={");
    for(i=0; i<ret; i++) {
        printf("%#x ", wcs[i]);
    }
    printf("}\n");
    
    return 0;
}
実行結果
locale='C'
あいうえお={0x82 0xa0 0x82 0xa2 0x82 0xa4 0x82 0xa6 0x82 0xa8 }
locale='Japanese_Japan.932'
あいうえお={0x3042 0x3044 0x3046 0x3048 0x304a }





inserted by FC2 system