C/C++ wcrtomb() 函数

2024 年 8 月 29 日 | 阅读 2 分钟

C/C++ 中的 wcrtomb() 函数将宽字符转换为其窄多字节表示。宽字符 wc 被转换为其多字节对应项并保存在由 s 引用的数组中。该方法返回指向 s 的相应多字节序列的长度(以字节为单位)。

语法

它具有以下语法

参数:该函数需要三个必要的参数,如下所示

  • st:它提供了一个足够大的数组的引用,用于存储多字节序列。
  • wcl:它表示要转换的宽字符。
  • pss:它定义了读取多字节文本时使用的转换状态。

返回值:该方法返回以下值

  • 如果成功,它返回传输到字符数组的字节数,其初始元素由 st 引用。
  • 如果失败,它返回 -1 并将 errno 更改为 EILSEQ

wcrtomb_s 函数将宽字符从 wcl 中包含的数值转换为由 mbchar 表示的位置,从存储在 mbstate 中的给定转换状态开始。pReturnValue 值将表示转换的总字节数,但不超过 MB_CUR_MAX 字节,如果发生错误则为 -1。

如果 mbstate 为空,则使用内部 mbstate_t 转换条件。如果 wcl 中的单个字符没有匹配的多字节字符,则 pReturnValue 的值为 -1,并且该方法返回 EILSEQ errno 结果。

示例

输出

Size of zU is 1 bytes
Invalid wide character
Invalid wide character
Invalid wide character