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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。