
- C 標準庫
- C 庫 - 首頁
- C 庫 - <assert.h>
- C 庫 - <complex.h>
- C 庫 - <ctype.h>
- C 庫 - <errno.h>
- C 庫 - <fenv.h>
- C 庫 - <float.h>
- C 庫 - <inttypes.h>
- C 庫 - <iso646.h>
- C 庫 - <limits.h>
- C 庫 - <locale.h>
- C 庫 - <math.h>
- C 庫 - <setjmp.h>
- C 庫 - <signal.h>
- C 庫 - <stdalign.h>
- C 庫 - <stdarg.h>
- C 庫 - <stdbool.h>
- C 庫 - <stddef.h>
- C 庫 - <stdio.h>
- C 庫 - <stdlib.h>
- C 庫 - <string.h>
- C 庫 - <tgmath.h>
- C 庫 - <time.h>
- C 庫 - <wctype.h>
- C 標準庫資源
- C 庫 - 快速指南
- C 庫 - 有用資源
- C 庫 - 討論
- C 程式設計資源
- C 程式設計 - 教程
- C - 有用資源
C 庫 - mblen() 函式
C 的stdlib 庫 mblen() 函式用於返回以 'str' 指向的多位元組字元的第一個位元組開頭的多位元組字元的長度(以位元組為單位)。多位元組字元由一個或多個位元組的序列組成。
mblen() 的行為取決於當前的區域設定,該區域設定包含語言和編碼引數。
語法
以下是 mblen() 函式的 C 庫語法 -
int mblen(const char *str, size_t n)
引數
此函式接受以下引數 -
str - 這是指向多位元組字元第一個位元組的指標。
n - 這是要檢查字元長度的最大位元組數。
返回值
此函式返回以下值 -
如果 str 不是空指標,則返回從以 str 開頭的多位元組字元傳遞的位元組數。
如果 str 指向的第一個位元組不構成有效的多位元組字元,則返回 -1。
如果 str 指向空字元。它返回 0。
示例 1
在此示例中,我們建立一個基本的 c 程式來演示 mblen() 函式的使用。
#include <stdio.h> #include <stdlib.h> int main() { char *mbstr = (char *)malloc(sizeof(char)); int len; // first reset mblen mblen(NULL, 0); mbstr = "tutorialspoint"; // display the length of a multibyte character len = mblen(mbstr, MB_CUR_MAX); printf("Length in bytes of multibyte character: %u\n", len); return 0; }
輸出
以下是輸出 -
Length in bytes of multibyte character: 1
示例 2
讓我們建立另一個示例,我們使用 mblen() 函式獲取多位元組字元的長度。如果字串指向空字元。
#include <stdio.h> #include <stdlib.h> int main() { char *mbstr = (char *)malloc(sizeof(char)); int len; // first reset mblen mblen(NULL, 0); mbstr = NULL; // display the length of a multibyte character len = mblen(mbstr, MB_CUR_MAX); printf("Length in bytes of NULL multibyte character: %u\n", len); return 0; }
輸出
以下是輸出 -
Length in bytes of NULL multibyte character: 0
示例 3
下面的 c 程式獲取多位元組字元的長度並顯示語句。如果字串是無效的多位元組序列。
#include <stdio.h> #include <stdlib.h> #include <locale.h> int main() { // create an invalid multi-byte sequence const char *invalidStr = "\xE2\x80"; // Set locale for UTF-8 setlocale(LC_ALL, "en_US.utf8"); // get the lenfth of multi-byte character. int len = mblen(invalidStr, MB_CUR_MAX); if (len == -1) { perror("Invalid multi-byte sequence"); } else { printf("Length in bytes of invalid multibyte character: %d\n", len); } return 0; }
輸出
以下是輸出 -
Invalid multi-byte sequence: Invalid or incomplete multibyte or wide character
廣告