std::iswctype (3) - Linux Manuals

std::iswctype: std::iswctype


std::iswctype - std::iswctype


Defined in header <cwctype>
int iswctype( std::wint_t wc, std::wctype_t desc );

Classifies the wide character wc using the current C locale's LC_CTYPE category identified by desc.
If the value of wc is neither representable as a wchar_t nor equal to the value of the macro WEOF, the behavior is undefined.


wc - the wide character to classify
desc - the LC_CTYPE category, obtained from a call to std::wctype

Return value

Non-zero if the character ch has the property identified by desc in LC_CTYPE facet of the current C locale, zero otherwise.


// Run this code

  #include <clocale>
  #include <cwctype>
  #include <iostream>
  bool classify(wchar_t wc, const std::string& cat)
      return std::iswctype(wc, std::wctype(cat.c_str()));
  int main()
      std::setlocale(LC_ALL, "ja_JP.UTF-8");
      std::cout << "The character \u6c34 is...\n";
      for(std::string s : {"digit", "alpha", "space", "cntrl", "jkanji"})
          std::cout << s << "? " << std::boolalpha << classify(L'\u6c34', s) << '\n';


  The character 水 is...
  digit? false
  alpha? true
  space? false
  cntrl? false
  jkanji? true

See also

       looks up a character classification category in the current C locale
wctype (function)