C/C++ 中的 mbsrtowcs() 函式
本文將討論 C++ STL 中 std::mbsrtowcs() 函式的工作、語法和示例。
std::mbsrtowcs() 是什麼?
std::mbsrtowcs() 函式是 C++ STL 中的一個內建函式,它在
語法
size_t mbsrtowcs( wchar_t* pwc, char** str, size_t n, mbstate_t* ps);
引數
此函式接受以下引數:
- pwc - 這是我們希望將輸出儲存到其中的位置的指標。
- str - 作為輸入使用的字元。
- n - 需要檢查的位元組數。
- ps - 當解釋多位元組字串時,這是狀態物件指標。
返回值
根據下列條件,此函式返回的值有所不同:
- 0 - 當 str 中需要轉換的字元為 NULL 時,此函式將返回零。
- 1...n - 轉換並存儲在字串 *str 中的空結束字元的位元組數。
- -1 − 當轉換時出現錯誤,errno 設定為 EILSEQ 時會獲得此結果。
示例
#include <bits/stdc++.h>
using namespace std;
int main(){
setlocale(LC_ALL, "en_US.utf8");
const char* ch = "\u0777\u0755";
wchar_t arr[20];
mbstate_t hold = mbstate_t();
int highest = 10;
int val = mbsrtowcs ( arr, &ch, highest, &hold );
wcout << L"Wide characters are: "<< val << endl;
wcout << L"Given Wide character is: " << arr << endl;
return 0;
}輸出
Wide characters are: 2 Given Wide character is: ݷݕ
示例
#include <bits/stdc++.h>
using namespace std;
int main() {
setlocale(LC_ALL, "en_US.utf8");
const char* ch = u8"z\u00df\u6c34";
wchar_t arr[20];
mbstate_t hold = mbstate_t();
int highest = 10;
int val = mbsrtowcs ( arr, &ch, highest, &hold );
wcout << L"Total Wide characters are: "<< val << endl;
wcout << L"Given Wide character is: " << arr << endl;
return 0;
}輸出
Total Wide characters are: 3 Given Wide character is: zß水
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP