mblen

提供: RAD Studio
移動先: 案内検索

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++

+

+

+

+