C 庫函數 - mbstowcs()

C 標準庫 - <stdlib.h> C 標準庫 - <stdlib.h>

描述

C 庫函數 size_t mbstowcs(schar_t *pwcs, const char *str, size_t n) 把參數 str 所指向的多位元組字元的字串轉換為參數 pwcs 所指向的數組。

聲明

下麵是 mbstowcs() 函數的聲明。

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

參數

  • pwcs -- 指向一個 wchar_t 元素的數組,數組長度足以存儲一個最大字符長度的寬字串。
  • str -- 要被轉換的多位元組字元字串。
  • n -- 要被轉換的最大字符數。

返回值

該函數返回轉換的字元數,不包括結尾的空字元。如果遇到一個無效的多位元組字元,則返回 -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("轉換為多位元組字串\n");
   len = wcstombs( pmb, pwc, MB_CUR_MAX);
   printf("被轉換的字元 %d\n", len);
   printf("第一個多位元組字元的十六進制值:%#.4x\n", pmb);

   printf("轉換回寬字元字串\n");
   len = mbstowcs( pwcs, pmb, MB_CUR_MAX);
   printf("被轉換的字元 %d\n", len);
   printf("第一個寬字元的十六進制值:%#.4x\n\n", pwcs);

   return(0);
}

讓我們編譯並運行上面的程式,這將產生以下結果:

轉換為多位元組字串

被轉換的字元 1
第一個多位元組字元的十六進制值:0x19a60010
轉換回寬字元字串
被轉換的字元 1
第一個寬字元的十六進制值:0x19a60030

C 標準庫 - <stdlib.h> C 標準庫 - <stdlib.h>