当前位置: 首页 > 编程笔记 >

C / C ++中的mbsrtowcs()函数

郎鸿雪
2023-03-14
本文向大家介绍C / C ++中的mbsrtowcs()函数,包括了C / C ++中的mbsrtowcs()函数的使用技巧和注意事项,需要的朋友参考一下

在本文中,我们将讨论C ++ STL中std::mbsrtowcs()函数的工作,语法和示例。

什么是std::mbsrtowcs()?

std::mbsrtowcs()函数是C ++ STL中的内置函数,在<cwchar>头文件中定义。mbsrtowcs()表示将第一个字节为* src的以空终止的多字节字符串转换为宽字符表示。该函数根据转换返回值。

语法

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ß水


 类似资料:
  • 本文向大家介绍C / C ++中的putwchar()函数,包括了C / C ++中的putwchar()函数的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中putwchar()函数的工作,语法和示例。 什么是putwchar()? putwchar()函数是C ++ STL中的内置函数,在<cwchar>头文件中定义。putwchar()函数用于在标准输出设备上写

  • 本文向大家介绍C / C ++程序中的mbrtowc()函数,包括了C / C ++程序中的mbrtowc()函数的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中std::mbrtowc()函数的工作,语法和示例。 什么是std::mbrtowc()? std::mbrtowc()函数是C ++ STL中的内置函数,在<cwchar>头文件中定义。mbrtowc()

  • 本文向大家介绍C ++中的div()函数,包括了C ++中的div()函数的使用技巧和注意事项,需要的朋友参考一下 C / C ++库函数div_t div(int numer,int denom)将numer(分子)除以denom(分母)。下面是div()函数的声明。 参数是分子和分母。此函数以<cstdlib>定义的结构返回该值,该结构具有两个成员。对于div_t:int quot; 诠释 示

  • 在下面的代码中,一旦我删除了比较字符串的注释部分,我就会出现seg 11错误。我无法理解为什么!其余代码运行良好。感谢任何帮助!

  • 本文向大家介绍浅析C/C++中sort函数的用法,包括了浅析C/C++中sort函数的用法的使用技巧和注意事项,需要的朋友参考一下 sort是STL中提供的算法,头文件为#include<algorithm>以及using namespace std; 函数原型如下: 使用第一个版本是对[first,last)进行升序排序,默认操作符为"<",第二个版本使用comp函数进行排序控制,comp包含两

  • 本文向大家介绍C++中的六个函数,包括了C++中的六个函数的使用技巧和注意事项,需要的朋友参考一下 一、构造函数    在C++中,构造函数是六个函数中的第一个,当一个对象被创建时,在它的整个周期中,是一个由生到死的过程,即构造函数创建对象,析构函数析构对象。在对象被创建时,调用构造函数创建一个对象,这是对象的创建过程。在C++中,当你创建一个对象时需要调用构造函数创建对象,在类中,有默认的构造函