mblen函数
概要:
#include <stdlib.h> int mblen(const char *s, size_t n);
描述:
该函数可用于确定多字节字符的字节数。
如果参数s不是空指针,mblen函数可以确定参数s指向多字节字符的字节数。
除了mbtowc函数的转换状态(conversion state)不受影响,mblen函数等价于
mbtowc((wchar_t *)0, (const char *)0, 0);
mbtowc((wchar_t *)0, s, n);
mblen函数会受当前语言环境LC_CTYPE类别的影响。函数在程序启动时处于初始转换状态,调用mblen(NULL, 0);可以返回该状态;随后在参数s不是空指针的情况下调用该函数,内部转换状态将根据需要进行改变。改变LC_CTYPE类别会导致函数的转换状态不确定。
实现应像没有库函数调用mblen函数一样。
参数:
const char *s
指向多字节字符第一个字节的指针。
size_t n
最多检查的字节数。
返回值:
在参数s是空指针的情况下,如果多字节字符的编码与状态有关(state-dependent encodings),函数返回非0值;如果多字节字符的编码与状态无关,函数返回0。
在参数s不是空指针的情况下,如果参数s指向空字符,函数返回0;如果参数s指向的不超过n个字节能够构成有效多字节字符,函数返回构成有效多字节字符的字节数;如果不能构成有效多字节字符,函数返回-1。
范例:
|
|
输出:
字符串: AI我中华
总字节数: 11
各个字符占有的字节数: 1 1 3 3 3
总字符数: 5
(注:使用ideone编译。)
相关内容:
| mbtowc | 将多字节字符序列转换为宽字符的函数。 |
| wctomb | 将宽字符转换为多字节字符序列的函数。 |
主要参考资料: