- 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 庫 - mbstowcs() 函式
C 的stdlib庫 mbstowcs() 函式用於將 'str' 指向的多位元組字元字串轉換為 'pwcs' 指向的陣列。
轉換後的字元儲存在 'pwcs' 指向的陣列的連續元素中。
目標陣列最多隻能容納 n 個寬字元。
語法
以下是 mbstowcs() 函式的 C 庫語法:
size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)
引數
此函式接受以下引數:
pwcs − 它表示指向 wchar_t 元素陣列的指標,該陣列足夠長,可以儲存最多 n 個字元的寬字串。
str − 它表示指向需要轉換的以 null 結尾的多位元組字串的第一個元素的指標。
n − 它表示 'pwcs' 指向的陣列中存在的最大 wchar_t 字元數。
返回值
此函式返回轉換的字元數,不包括 null 字元。如果找到無效的多位元組字元,則返回 -1。
示例 1
在這個例子中,我們建立一個基本的 c 程式來演示 mbstowcs() 函式的使用。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <wchar.h>
#include <locale.h>
int main() {
// UTF-8 encoded multibyte string
const char *mbstr = "zß?\xF0\x9F\x8D\x8C";
// Set locale for UTF-8
setlocale(LC_ALL, "en_US.utf8");
// Wide character array
wchar_t wcs[5];
size_t len = mbstowcs(wcs, mbstr, 5);
if (len != (size_t)-1) {
wprintf(L"Wide string: %ls\n", wcs);
} else {
perror("Conversion error");
}
return 0;
}
輸出
以下是輸出:
Conversion error: Invalid or incomplete multibyte or wide character
示例 2
下面的 c 示例使用 mbstowcs() 函式將多位元組字串轉換為寬字元字串。
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>
int main() {
// Multibyte string
const char *mbstr = "Hello, world!";
// Set locale for UTF-8
setlocale(LC_ALL, "en_US.utf8");
// Wide character array (adjust size as needed)
wchar_t wcs[20];
size_t len = mbstowcs(wcs, mbstr, sizeof(wcs) / sizeof(wcs[0]));
if (len != (size_t)-1) {
wprintf(L"Wide string: %ls\n", wcs);
} else {
perror("Conversion error");
}
return 0;
}
輸出
以下是輸出:
Wide string: Hello, world!
示例 3
讓我們建立另一個 c 程式來轉換多位元組字串為寬字元字串,並顯示寬字元。
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
#include <locale.h>
int main() {
// Multibyte string
const char *mbstr = "Hello World \n This is tutorialspoint";
// Set locale for UTF-8
setlocale(LC_ALL, "en_US.utf8");
// Wide character array (adjust size as needed)
wchar_t wcs[25];
size_t len = mbstowcs(wcs, mbstr, sizeof(wcs) / sizeof(wcs[0]));
if (len != (size_t)-1) {
wprintf(L"Wide string: %ls\n", wcs);
} else {
perror("Conversion error");
}
return 0;
}
輸出
以下是輸出:
Wide string: Hello World This is tut
廣告