Latest web development tutorials

Cライブラリ関数 - mblen()

C標準ライブラリ -  <stdlib.h>に含ま C標準ライブラリ- <stdlib.h>に含ま

説明

Cライブラリ関数は、mblen(のconst char型* strの、int型のsize_t n)でマルチバイト文字に長さ引数strポイントを返します。

声明

ここでmblen()関数の宣言です。

int mblen(const char *str, size_t n)

パラメータ

  • STR -マルチバイト文字ポインタの最初のバイトを指します。
  • 文字の長さをチェックするバイト数の最大値- n個。

戻り値

null以外のワイド文字の識別は、mblen()関数はマルチバイト列のバイト数を返した場合、STR解析を開始。 あなたがnullワイド文字を識別した場合は、0を返します。 無効なマルチバイトシーケンスを識別するか、または完全なマルチバイト文字を解析できない場合は、-1が返されます。

以下の例は、()関数を使用するmblenを示しています。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   int len;
   char *pmbnull  = NULL;
   char *pmb = (char *)malloc( MB_CUR_MAX );
   wchar_t *pwc = L"Hi";
   wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t ));

   printf("转换为多字节字符串\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("被转换的字符 %d\n", len);
   printf("第一个多字节字符的十六进制值:%#.4x\n", pmb);
   
   len = mblen( pmb, MB_CUR_MAX );
   printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
   
   pmb = NULL;
   
   len = mblen( pmb, MB_CUR_MAX );
   printf( "多字节字符 %x 的字节长度:%u\n", pmb, len );
   
   return(0);
}

それでは、以下になります上記のプログラムを、コンパイルして実行してみましょう:

转换为多字节字符串
被转换的字符 1
第一个多字节字符的十六进制值:0x168c6010
多字节字符 168c6010 的字节长度:1
多字节字符 0 的字节长度:0

C標準ライブラリ -  <stdlib.h>に含ま C標準ライブラリ- <stdlib.h>に含ま