home | help
std::towctrans(3)	       C++ Standard Libary	       std::towctrans(3)

NAME
     std::towctrans - std::towctrans

Synopsis
	Defined in header <cwctype>
	std::wint_t towctrans( std::wint_t ch, std::wctrans_t desc );

	Maps the wide character ch using the current C locale's LC_CTYPE mapping
     category
	identified by desc.

	If  the  value	of ch is neither representable as a wchar_t nor equal to
     the value of
	the macro WEOF, the behavior is undefined.

Parameters
	ch   - the wide character to map
	desc - the LC_CTYPE mapping, obtained from a call to std::wctrans

Return value
	The mapped value of ch using the mapping identified by desc in	LC_CTYPE
     facet of the
	current C locale.

Example
	The  following	example demonstrates katakana to hiragana character map-
     ping.

     // Run this code

      #include <algorithm>
      #include <clocale>
      #include <cwctype>
      #include <iostream>

      std::wstring tohira(std::wstring str)
      {
	  std::transform(str.begin(), str.end(), str.begin(), [](wchar_t c)
	  {
	       return std::towctrans(c, std::wctrans("tojhira"));
	  });
	  return str;
      }

      int main()
      {
	  std::setlocale(LC_ALL, "ja_JP.UTF-8");
	  std::wstring kana = L"aa(C)a~a";
	  std::wcout << "katakana characters " << kana
		     << " are " << tohira(kana) << " in hiragana\n";
      }

Output:
      katakana characters aa(C)a~a are a^2aaaa in hiragana

See also
	wctrans looks up a character mapping category in the current C locale
		(function)
	C documentation for
	towctrans

http://cppreference.com 	   2024.06.10		       std::towctrans(3)

home | help