C++ 中的wctomb() 函數將寬字符轉換為多字節字符。
wctomb() 函數在<cstdlib> 頭文件中定義。
wctomb()原型
int wctomb (char* pmb, wchar_t wc);
wctomb() 函數接受兩個參數並返回一個整數值。該函數將表示的寬字符轉換為wc
到它的多字節等價物,並存儲在指向的內存位置pmb
.可以存儲的最大字符數是MB_CUR_MAX.
如果 wc
是空字符,則將空字節寫入 pmb
。
如果pmb
是空指針,則調用wctomb() 將重置全局轉換狀態並確定是否使用移位序列。
參數:
pmb
:指向生成的多字節字符的指針wc
: 轉換為多字節字符的寬字符
返回:
如果 pmb
不是空指針,則 wctomb() 返回:
wc
的多字節表示中包含的字節數。- -1 如果
wc
不是有效字符。
如果pmb
是空指針,則重置其內部轉換狀態以表示初始移位狀態並返回:
- 0 如果當前多字節編碼不是state-dependent(不使用移位序列)
- 如果當前多字節編碼為state-dependent(使用移位序列),則為非零值。
示例:wctomb() 函數如何工作?
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
wchar_t wc = L'x';
char *pmb1 = (char*)malloc(sizeof(char));
char *pmb2 = NULL;
int ret_val;
cout << "When pmb is not null" << endl;
ret_val = wctomb(pmb1, wc);
cout << "Return Value = " << ret_val << endl;
wcout << "Multibyte Character: " << pmb1 << endl << endl;
cout << "When pmb is null" << endl;
ret_val = wctomb(pmb2, wc);
cout << "Return Value = " << ret_val << endl;
wcout << "Multibyte Character: " << pmb2;
return(0);
}
運行程序時,可能的輸出將是:
When pmb is not null Return Value = 1 Multibyte Character: x↨R When pmb is null Return Value = 0 Multibyte Character:
相關用法
- C++ wctob()用法及代碼示例
- C++ wctrans()用法及代碼示例
- C++ wctype()用法及代碼示例
- C++ wcstold()用法及代碼示例
- C++ wcerr用法及代碼示例
- C++ wcsftime()用法及代碼示例
- C++ wcstod()用法及代碼示例
- C++ wcscspn()用法及代碼示例
- C++ wcsncmp()用法及代碼示例
- C++ wcin用法及代碼示例
- C++ wcstok()用法及代碼示例
- C++ wcsstr()用法及代碼示例
- C++ wcsrchr()用法及代碼示例
- C++ wcsncpy()用法及代碼示例
- C++ wcslen()用法及代碼示例
- C++ wcsspn()用法及代碼示例
- C++ wclog用法及代碼示例
- C++ wcschr()用法及代碼示例
- C++ wcstof()用法及代碼示例
- C++ wcstol()用法及代碼示例
注:本文由純淨天空篩選整理自 C++ wctomb()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。