当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 mblen用法及代码示例


C语言stdlib头文件(stdlib.h)中mblen函数的用法及代码示例。

用法:

int mblen (const char* pmb, size_t max);
获取多字节字符的长度
返回由指向的多字节字符的大小pmb最多检查max个字节。

mblen有自己的内部换档状态,只有在调用此函数时才需要进行更改。使用空指针作为对函数的调用pmb重置状态(并返回多字节字符是否为state-dependent)。

此函数的行为取决于LC_CTYPE所选类别C语言环境

参数

pmb
指向多字节字符的第一个字节的指针。
或者,可以使用空指针,在这种情况下,该函数会将其内部移位状态重置为初始值,并返回多字节字符是否使用state-dependent编码。
max
最大字节数pmb考虑使用多字节字符。
不多于MB_CUR_MAX在任何情况下都将检查字符。
size_t是无符号整数类型。

返回值

如果参数传递为pmb不是一个空指针,由指向的字符的大小(以字节为单位)pmb当它形成有效的多字节字符而不是终止空字符。如果是终止空字符,该函数将返回零,并且在它们不构成有效的多字节字符的情况下,-1返回。

如果参数传递为pmb是一个空指针,如果多字节字符编码为state-dependent,则该函数返回非零值,否则返回零。

示例

/* mblen example */
#include <stdio.h>      /* printf */
#include <stdlib.h>     /* mblen, mbtowc, wchar_t(C) */

void printbuffer (const char* pt, size_t max)
{
  int length;
  wchar_t dest;

  mblen (NULL, 0);         /* reset mblen */
  mbtowc (NULL, NULL, 0);  /* reset mbtowc */

  while (max>0) {
    length = mblen (pt, max);
    if (length<1) break;
    mbtowc(&dest,pt,length);
    printf ("[%lc]",dest);
    pt+=length; max-=length;
  }
}

int main()
{
  const char str [] = "test string";

  printbuffer (str,sizeof(str));

  return 0;
}


printbuffer按字符打印多字节字符串。

该示例使用一个琐碎的字符串"C"语言环境,但是该函数支持解释多字节字符串的语言环境。

输出:

[t][e][s][t][ ][s][t][r][i][n][g]



相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C mblen function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。