機能 |
多バイト文字列の一文字のバイト数を検査する。 ※ 地域(LC_CTYPE部門)によって結果は異なる |
||||
---|---|---|---|---|---|
定義 |
#include <stdlib.h> int mblen( const char * s, size_t n ); |
||||
引数 |
|
||||
戻り値 |
引数sが正しい多バイト文字を形成する場合、多バイト文字を構成するバイト数を返す。 正しい多バイト文字を形成しない場合は、-1を返す。 |
||||
実装例 |
#include <stdlib.h> #include <stdio.h> #include <locale.h> int main(void) { int ret; /* Cロケール環境 */ printf("locale='%s'\n", setlocale(LC_CTYPE, NULL)); ret = mblen("a", MB_CUR_MAX); /* 1バイト文字 */ printf("a =%d\n", ret); ret = mblen("あ", MB_CUR_MAX); /* 2バイト文字 */ printf("あ=%d\n", ret); /* 日本ロケール環境 */ printf("locale='%s'\n", setlocale(LC_CTYPE, "Japanese")); ret = mblen("a", MB_CUR_MAX); /* 1バイト文字 */ printf("a =%d\n", ret); ret = mblen("あ", MB_CUR_MAX); /* 2バイト文字 */ printf("あ=%d\n", ret); return 0; } |
||||
実行結果 |
locale='C' a =1 あ=-1 locale='Japanese_Japan.932' a =1 あ=2 |
mblen()