当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C语言 mbstowcs()用法及代码示例



描述

C库函数size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)转换由参数指向的 multi-byte 个字符的字符串str指向的数组pwcs

声明

以下是 mbstowcs() 函数的声明。

size_t mbstowcs(schar_t *pwcs, const char *str, size_t n)

参数

  • pwcs- 这是指向 wchar_t 元素数组的指针,该数组的长度足以存储宽字符串 max 个字符的长度。

  • str− 这是要解释的 C multi-byte 字符串。

  • n- 这是要解释的 wchar_t 字符的最大数量。

返回值

此函数返回翻译的字符数,不包括结尾 null-character。如果遇到无效的 multi-byte 字符,则返回 -1 值。

示例

下面的例子展示了 mbstowcs() 函数的用法。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

int main () {
   int len;
   char *pmbnull  = NULL;
   char *pmb = (char *)malloc( MB_CUR_MAX );
   wchar_t *pwc = L"Hi";
   wchar_t *pwcs = (wchar_t *)malloc( sizeof( wchar_t ));

   printf("Converting to multibyte string\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("Characters converted %d\n", len);
   printf("Hex value of first multibyte character:%#.4x\n", pmb);
   
   printf("Converting back to Wide-Character string\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("Characters converted %d\n", len);
   printf("Hex value of first wide character %#.4x\n\n", pwcs);
   
   return(0);
}

让我们编译并运行上面的程序,将产生以下结果 -

Converting to multibyte string
Characters converted 1
Hex value of first multibyte character:0x19a60010
Converting back to Wide-Character string
Characters converted 1
Hex value of first wide character 0x19a60030

相关用法


注:本文由纯净天空筛选整理自 C library function - mbstowcs()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。