这个 mbsrtowcs( )函数将窄多字节字符序列转换为宽字符序列。它转换多字节字符串,其第一个字节由 *src 对应的宽字符表示,并存储在 目的地 .最多 伦恩 宽字符被写入 目的地 .
null
语法:
size_t mbsrtowcs( wchar_t* dest, const char** src, size_t len, mbstate_t* ps )
参数: 该函数接受四个强制参数,如下所述:
- 目的地: 指定指向存储转换后的宽字符的数组的指针
- 附言: 指定指向转换状态对象的指针
- src: 指定指向要转换的第一个多字节字符的指针
- 伦恩: 指定要存储的最大数字宽度字符
返回值: 该函数返回两个值,如下所示:
- 函数的作用是:返回写入dest的宽字符数,成功后不包括终止的宽空字符。
- 如果dest是一个空指针,它将返回考虑到长度不受限制而写入的宽字符数。
- 转换错误时,返回-1,并将errno设置为 艾尔斯克
.
注: 此函数用于将src指针移动到转换后的多字节字符串的末尾。如果 dst==NULL
以下程序说明了上述功能: 项目1:
// C++ program to illustrate // mbsrtowcs function #include <bits/stdc++.h> using namespace std; int main() { setlocale (LC_ALL, "en_US.utf8" ); // initializing the string // narrow multibyte character sequence const char * src = "u0763u0757" ; wchar_t dest[20]; // initial state mbstate_t ps = mbstate_t (); // maximum number of wide character int max = 10; int retVal = mbsrtowcs ( dest, &src, max, &ps ); wcout << L "Number of wide characters written = " << retVal << endl; wcout << L "Wide character = " << dest << endl; return 0; } |
输出:
Number of wide characters written = 2 Wide character = Ý£Ý?
项目2:
// C++ program to illustrate // mbsrtowcs function #include <bits/stdc++.h> using namespace std; int main() { // set locale setlocale (LC_ALL, "en_US.utf8" ); // initializing the string // narrow multibyte character sequence const char * src = u8 "zu00dfu6c34U0001f34c" ; wchar_t dest[20]; // initial state mbstate_t ps = mbstate_t (); // maximum number of wide character int max = 10; int retVal = mbsrtowcs ( dest, &src, max, &ps ); wcout << L "Number of wide characters written = " << retVal << endl; wcout << L "Wide character = " << dest << endl; return 0; } |
输出:
Number of wide characters written = 4 Wide character = zÃ?æ°´ð??
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END