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