C 库函数 - mblen()

C 语言教程 · 2019-02-24 11:26:36

描述

C 库函数 int mblen(const char *str, size_t n) 返回参数 str 所指向的多字节字符的长度。

声明

下面是 mblen() 函数的声明。

int mblen(const char *str, size_t n)

参数

  • str -- 指向多字节字符的第一个字节的指针。
  • n -- 要检查的字符长度的最大字节数。

返回值

如果识别了一个非空宽字符,mblen() 函数返回 str 开始的多字节序列解析的字节数。如果识别了一个空宽字符,则返回 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 语言教程 文章: https://www.codercto.com/courses/l/17.html

查看所有标签

C++语言的设计和演化

C++语言的设计和演化

[美] Bjarne Stroustrup / 裘宗燕 / 机械工业出版社 / 2002-1 / 48.00元

这本书是C++的设计者关于C++语言的最主要著作之一。作者综合性地论述了C++的历史和发展,C++中各种重要机制的本质意义和设计背景,这些机制的基本用途和使用方法,讨论了C++所适合的应用领域及其未来的发展前景。一起来看看 《C++语言的设计和演化》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码