mblen
stdlib.h:インデックス への移動
ヘッダーファイル
stdlib.h
カテゴリ
メモリと文字列の操作ルーチン
プロトタイプ
int mblen(const char *s, size_t n);
説明
マルチバイト文字の長さを判定します。
s が NULL でない場合,mblen は,s が指すマルチバイト文字のバイト数を判定します。バイト数の最大値は n で指定されます。
mblen の動作は,現在のロケールの LC_CTYPE カテゴリの設定に依存します。
戻り値
s が NULL で,マルチバイト文字のエンコードが状態依存である場合,mblen は 0 以外の値を返します。それ以外の場合,mblen は 0 を返します。
s が NULL でなく,s がヌル文字を指す場合,mblen は 0 を返します。次の n バイトが有効なマルチバイト文字を構成しない場合は -1 を返します。有効なマルチバイト文字を構成する場合は,バイト数を返します。
例
#include <stdlib.h>
#include <stdio.h>
void main (void)
{
int i ;
char *mulbc = (char *)malloc( sizeof( char) );
wchar_t widec = L'a';
printf (" convert a wide character to multibyte character:\n" );
i = wctomb (mulbc, widec);
printf( "\tCharacters converted: %u\n", i);
printf( "\tMultibyte character: %x\n\n", mulbc);
printf( " Find length--in byte-- of multibyte character:\n");
i = mblen( mulbc, MB_CUR_MAX);
printf("\tLength--in bytes--if multiple character: %u\n",i);
printf("\tWide character: %x\n\n", mulbc);
printf( " Attempt to find length of a Wide character Null:\n");
widec = L'\0';
wctomb(mulbc, widec);
i = mblen( mulbc, MB_CUR_MAX);
printf("\tLength--in bytes--if multiple character: %u\n",i);
printf("\tWide character: %x\n\n", mulbc);
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ |
---|---|---|---|
+ |
+ |
+ |
+ |