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++ mbsinit()用法及代碼示例
- C++ mbrtoc32()用法及代碼示例
- C++ mbrlen()用法及代碼示例
- C++ mbrtoc16()用法及代碼示例
- C++ mbrtowc()用法及代碼示例
- C++ mbstowcs()用法及代碼示例
- C++ mblen()用法及代碼示例
- C++ mbsrtowcs()用法及代碼示例
- C++ map lower_bound()用法及代碼示例
- C++ multimap key_comp()用法及代碼示例
- C++ merge()用法及代碼示例
- C++ multimap empty()用法及代碼示例
- C++ multimap cend()用法及代碼示例
- C++ multiset begin()、end()用法及代碼示例
- C++ map::at()用法及代碼示例
- C++ multiset value_comp()用法及代碼示例
- C++ multimap insert()用法及代碼示例
- C++ memset()用法及代碼示例
- C++ map max_size()用法及代碼示例
- C++ multiset emplace()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ mbtowc()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。