當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


C++ mbtowc()用法及代碼示例

C++ 中的mbtowc() 函數將多字節字符轉換為寬字符。

mbtwoc() 函數在<cstdlib> 頭文件中定義。

mbtowc()原型

int mbtowc (wchar_t* pwc, const char* pmb, size_t max);

mbtowc() 函數接受三個參數並返回一個整數值。此函數將 pmb 指向的 multibyte character 轉換為寬字符(wchar_t 類型的值)並存儲在 pwc 指向的內存位置。

如果pmb 是空指針,則調用mbtowc() 將重置全局轉換狀態並確定是否使用移位序列。

參數:

  • pwc:指向生成的寬字符的指針
  • pmb : 指向轉換為寬字符的多字節字符的指針
  • max:要考慮的多字節字符的最大大小(以字節為單位)。

返回:

如果 pmb 不是空指針,則 mbtowc() 返回:

  • pmb 指向的多字節字符中包含的字節數。
  • -1 如果 pmb 指向的第一個字節不形成有效的多字節字符。
  • 如果 pmb 指向終止空字符,即 '\0',則為 0。

如果pmb 是空指針,則重置其內部轉換狀態以表示初始移位狀態並返回:

  • 0 如果當前多字節編碼不是state-dependent(不使用移位序列)
  • 如果當前多字節編碼為state-dependent(使用移位序列),則為非零值。

示例:mbtowc() 函數如何工作?

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;

int main()
{
    char pmb[] = "Welcome to Programiz.com";
    wchar_t pwc[100];
    int len, ret_val;

    /* resets internal conversion state */
    mbtowc (NULL, NULL, 0);
    len = strlen(pmb);
    ret_val = mbtowc(pwc, pmb, strlen(pmb));

    cout << "Return Value = " << ret_val << endl;
    wcout << "Wide character string: " << pwc;

    return(0);
}

運行程序時,可能的輸出將是:

Return Value = 1
Wide character string: W@

相關用法


注:本文由純淨天空篩選整理自 C++ mbtowc()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。