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


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

C++ 中的mbstowcs() 函數將多字節字符串轉換為等效的寬字符序列。

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

mbstowcs()原型

size_t mbstowcs (wchar_t* dest, const char* src, size_t max);

mbstowcs() 函數接受三個參數並返回一個整數值。

此函數將第一個元素由src 指向的多字節字符串轉換為其寬字符(wchar_t 類型的值)表示形式。

結果存儲在 dest 指向的內存位置。參數max 表示要轉換的最大多字節字符數。

轉換機製與 mbtowc() 相同,隻是 mbtowc 轉換狀態不受影響。如果出現以下情況,轉換將停止:

  • 遇到空字符,然後將其轉換並存儲。
  • 遇到無效的多字節字符。
  • 已轉換最大多字節字符數。

參數:

  • dest:指向生成的寬字符數組的指針。
  • src:指向轉換為寬字符的多字節字符的第一個元素的指針。
  • max:要轉換的最大多字節字符數。

返回:

  • 如果轉換成功,mbstowcs() 返回寬字符數,不包括寫入目標數組的終止字符(即'\0')。
  • 如果在轉換過程中發生任何錯誤,則返回 -1。

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

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

int main()
{
    char src[] = "\xc4\xe3\xba\xc3";
    wchar_t dest[10];
    int num;

    num = mbstowcs(dest, src, MB_CUR_MAX);
    cout << "Number of wide character converted = " << num << endl;
    wcout << "Wide Character String = " << dest << endl;

    return 0;
}

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

Number of wide character converted = 1
Wide Character String = ─

相關用法


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