Cライブラリ関数 - mblen()
説明
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