C语言wchar头文件(wchar.h)中mbrlen函数的用法及代码示例。
用法:
size_t mbrlen (const char* pmb, size_t max, mbstate_t* ps);
获取多字节字符的长度
该函数使用(并更新)由以下内容描述的换档状态ps。如果ps是一个空指针,该函数使用其自己的内部换档状态,只有在调用此函数时才需要进行更改。
使用空指针作为对函数的调用mb重置换档状态(并忽略参数最大限度)。
此函数的行为取决于LC_CTYPE所选类别C语言环境。
这是可重启的版本mblen(<cstdlib>)。
参数
- pmb
- 指向多字节字符的第一个字节的指针。
或者,可以使用空指针调用该函数,在这种情况下,该函数将重置移位状态(ps(或它自己的内部状态)返回初始状态,并返回零。 - max
- 要检查的最大字节数。
宏常量MB_CUR_MAX定义在当前语言环境设置下可以形成多字节字符的最大字节数。
size_t是无符号整数类型。 - ps
- 指向一个指针mbstate_t定义转换状态的对象。
返回值
如果mb指向一个空字符,或者mb是一个空指针,该函数返回零。否则,如果最多最大限度所指向的字符mb如果形成一个有效的多字节字符,该函数将返回该多字节字符的大小(以字节为单位)。
否则,如果最多最大限度字符不构成一个有效的多字节字符,该函数返回(size_t)-1和集errno至EILSEQ。
否则,如果最大限度字符导致不完整(但可能有效)的多字节字符,该函数将返回(size_t)-2。
注意size_t是无符号整数类型,因此可能返回的值都不小于零。
示例
/* mbrlen example */
#include <stdio.h>
#include <string.h>
#include <wchar.h>
void splitmb (const char* pt, size_t max)
{
size_t length;
wchar_t dest;
mbstate_t mbs;
int i;
mbrlen (NULL,0,&mbs); /* initialize state */
while (max>0) {
length = mbrlen (pt, max, &mbs);
if ((length==0)||(length>max)) break;
putchar ('[');
for (i=0; i<length; ++i) putchar (*pt++);
putchar (']');
max-=length;
}
}
int main()
{
const char str [] = "test string";
splitmb (str,sizeof(str));
return 0;
}
函数splitmb将一个多字节序列分成若干字节组,这些字节组构成每个字符。
该示例在"C"语言环境,但是该函数支持支持多字节字符串的语言环境。
输出:
[t][e][s][t][ ][s][t][r][i][n][g] |
相关用法
- C语言 fgetwc用法及代码示例
- C语言 fgetws用法及代码示例
- C语言 fputwc用法及代码示例
- C语言 fputws用法及代码示例
- C语言 fwide用法及代码示例
- C语言 fwprintf用法及代码示例
- C语言 fwscanf用法及代码示例
- C语言 getwc用法及代码示例
- C语言 getwchar用法及代码示例
- C语言 putwc用法及代码示例
- C语言 putwchar用法及代码示例
- C语言 swprintf用法及代码示例
- C语言 swscanf用法及代码示例
- C语言 ungetwc用法及代码示例
- C语言 vfwprintf用法及代码示例
- C语言 vfwscanf用法及代码示例
- C语言 vswprintf用法及代码示例
- C语言 vswscanf用法及代码示例
- C语言 vwprintf用法及代码示例
- C语言 vwscanf用法及代码示例
- C语言 wprintf用法及代码示例
- C语言 wscanf用法及代码示例
- C语言 wcstod用法及代码示例
- C语言 wcstof用法及代码示例
- C语言 wcstol用法及代码示例
- C语言 wcstold用法及代码示例
- C语言 wcstoll用法及代码示例
- C语言 wcstoul用法及代码示例
- C语言 wcstoull用法及代码示例
- C语言 btowc用法及代码示例
- C语言 mbrtowc用法及代码示例
- C语言 mbsinit用法及代码示例
- C语言 wcrtomb用法及代码示例
- C语言 wctob用法及代码示例
- C语言 wcsrtombs用法及代码示例
- C语言 wcscat用法及代码示例
- C语言 wcschr用法及代码示例
- C语言 wcscmp用法及代码示例
- C语言 wcscpy用法及代码示例
- C语言 wcscspn用法及代码示例
- C语言 wcslen用法及代码示例
- C语言 wcsncat用法及代码示例
- C语言 wcsncmp用法及代码示例
- C语言 wcsncpy用法及代码示例
- C语言 wcspbrk用法及代码示例
- C语言 wcsrchr用法及代码示例
- C语言 wcsspn用法及代码示例
- C语言 wcsstr用法及代码示例
- C语言 wcstok用法及代码示例
- C语言 wmemchr用法及代码示例
- C语言 wmemcmp用法及代码示例
- C语言 wmemcpy用法及代码示例
- C语言 wmemmove用法及代码示例
- C语言 wmemset用法及代码示例
- C语言 wcsftime用法及代码示例
注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C mbrlen function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。