mbstowcs

mbstowcs - 把多字元轉換成寬字元。

基本介紹

  • 外文名:mbstowcs
  • 作用:把多字元轉換成寬字元
  • 頭檔案:#include <stdlib.h>
  • 領域:計算機
程式介紹,程式內容,

程式介紹

mbstowcs - 把多字元轉換成寬字元

程式內容

頭檔案:
#include <stdlib.h>
size_t mbstowcs(wchar_t *dest, const char *src, size_t n);
說明:
如dest 非NULL,則mbstowcs() 函式把多字元src轉換成寬字元dest,最多轉換到n個寬字元(即wchar_t);如dest為NULL,則忽略參數n,轉換仍然繼續,只是不寫到dest,最終返迴轉換成功的寬字元個數(不包括終止符'\0')。
轉換成功,返回的是內容個數(不包括終止符),不成功返回(size_t)(-1)。可使dest為NULL來測試dest需要多少記憶體,也即最終至少需要(返回值+1)個寬字元的記憶體。
例如:以下程式的功能
#include <stdio.h>
#include <locale.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char buf[256]={"你好啊"};
setlocale(LC_ALL,"zh_CN.UTF-8");
wchar_t ar[256]={'\0'};
int read=mbstowcs(ar,buf,strlen(buf));
printf("%d\n",strlen(buf)); //輸出為:9 [位元組] UF-8編碼下一個漢字占三個位元組3*3=9
printf("%d\n",read); //輸出為:3 [個數] “你好啊”三個子字個數
}
注意:
mbstowcs函式的行為受當前locale的決定。
std::string curLocale = setlocale(LC_ALL, NULL);
setlocale(LC_ALL, "chs");

相關詞條

熱門詞條

聯絡我們