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


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


C++ 中的 c32rtomb() 函數將 32 位字符轉換為窄多字節字符表示。

c32rtomb() 函數在<cuchar> 頭文件中定義。

c32rtomb() 原型

size_t c32rtomb(char* s, char32_t c32, mbstate_t* ps);

c32rtomb() 函數將 utf-32 字符 c32 轉換為其多字節等效字符,並將其存儲在 s 指向的對象中。

如果s 表示一個空指針,則該調用等效於某些內部緩衝區 buf 的 c32rtomb(buf, U'\0', ps)。

如果 c32 是空寬字符,即 U'\0',則存儲空字節。

參數:

  • s:指向存儲多字節字符的字符數組的指針。
  • c32 :要轉換的 32 位字符。
  • ps :指向解釋多字節字符串時使用的 mbstate_t 對象的指針。

返回:

  • 成功時,c32rtomb() 函數返回寫入 s 指向的字符數組的字節數。
  • 失敗時,返回 -1 並將 errno 設置為EILSEQ.

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

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

int main()
{
	const char32_t str[] = U"C++ is super fast.";
	char s[50];
	mbstate_t ps{};
	size_t length;
	int j = 0;

	while (str[j])
	{
		length = c32rtomb(s, str[j], &ps);
		if ((length == 0) || (length > 50))
			break;

		for (int i=0; i<length; ++i)
			cout << s[i];
		++j;
	}

	return 0;
}

運行程序時,輸出將是:

C++ is super fast.

相關用法


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