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

C / C ++程序中的mbrtowc()函数

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

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

什么是std::mbrtowc()?

std::mbrtowc()函数是C ++ STL中的内置函数,在<cwchar>头文件中定义。mbrtowc()意味着它将窄多字节字符串转换为宽字符。此函数用于将一个窄的多字节字符转换为宽字符表示。

语法

size_t mbrtowc( wchar_t* pwc, char* str, size_t n, mbstate_t* ps);

参量

该函数接受以下参数-

  • pwc-这是指向我们要存储输出的位置的指针。

  • str-用作输入的字符串。

  • n-这是要检查的字节数。

  • ps-当我们解释多字节字符串时,它是指向状态对象的指针。

返回值

该函数的返回值根据以下条件而有所不同-

  • 0-当必须转换的str中的字符为NULL时,该函数将返回零。

  • 1…n-从字符串* str转换而来的多字节字符的字节数。

  • -2-当接下来的n个字节不完整但到目前为止是有效的多字节字符时,我们将得到-2。

  • -1-当我们遇到编码错误时,我们得到-1,没有任何内容写入* pwc。

示例

#include <bits/stdc++.h>
using namespace std;
void print_(const char* ch){
   mbstate_t temp = mbstate_t();
   int cal = strlen(ch);
   const char* i = ch + cal;
   int total;
   wchar_t con;
   while ((total = mbrtowc(&con, ch, i - ch, &temp)) > 0){
      wcout << "Next " << total <<" bytes are the character " << con << '\n';
      ch += total;
   }
}
int main(){
   setlocale(LC_ALL, "en_US.utf8");
   const char* len = u8"z\u00df\u6c34";
   print_(len);
}

输出结果

Next 1 bytes are the character z
Next 2 bytes are the character ß
Next 3 bytes are the character 水

示例

#include <bits/stdc++.h>
using namespace std;
void print_(const char* ch){
   mbstate_t temp = mbstate_t();
   int cal = strlen(ch);
   const char* i = ch + cal;
   int total;
   wchar_t con;
   while ((total = mbrtowc(&con, ch, i - ch, &temp)) > 0){
      wcout << "Next " << total <<" bytes are the character " << con << '\n';
      ch += total;
   }
}
int main(){
   setlocale(LC_ALL, "en_US.utf8");
   const char* len = u8"\xE2\x88\x83y\xE2\x88\x80x\xC2";
   print_(len);
}

输出结果

Next 3 bytes are the character ∃
Next 1 bytes are the character y
Next 3 bytes are the character ∀
Next 1 bytes are the character x
 类似资料:
  • 本文向大家介绍C / C ++中的mbsrtowcs()函数,包括了C / C ++中的mbsrtowcs()函数的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++ STL中std::mbsrtowcs()函数的工作,语法和示例。 什么是std::mbsrtowcs()? std::mbsrtowcs()函数是C ++ STL中的内置函数,在<cwchar>头文件中定义。表示将

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

  • 本文向大家介绍C ++程序中的restder(),包括了C ++程序中的restder()的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将讨论C ++函数的工作原理,语法和示例。 什么啊 restder()函数是C ++ STL中的内置函数,在<cmath>头文件中定义。用于查找其余参数。 此函数采用两个参数,一个用于分子,第二个用于,并计算其余数,并返回一个四舍五入到最接近的浮点数。

  • 用C编程语言显示表或多或少类似于计数。 我们只使用一次迭代并使用正在打印的表的值递增它。 算法 (Algorithm) 让我们首先看看打印表格的逐步程序应该是什么 - START Step 1 → Define table value n Step 2 → Iterate from i = n to (n*10) Step 3 → Display i Step 4 → In

  • 本文向大家介绍C#程序获取C#中的文件名,包括了C#程序获取C#中的文件名的使用技巧和注意事项,需要的朋友参考一下 在字符串中设置路径名- 现在,使用GetFileName()方法获取文件名- 以下是完整的代码- 示例 输出结果

  • 反向计数是整数的序列,按降序排列,不为零。 开发一个用C编程语言计数的程序很简单,我们将在本章中看到。 算法 (Algorithm) 让我们首先看看反向计数的逐步程序应该是什么 - START Step 1 → Define start and end of counting Step 2 → Iterate from end to start Step 3 → Display