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


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

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++ wctomb()。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。