std::iswpunct (3) - Linux Manuals

std::iswpunct: std::iswpunct

NAME

std::iswpunct - std::iswpunct

Synopsis


Defined in header <cwctype>
int iswpunct( std::wint_t ch );


Checks if the given wide character is a punctuation character, i.e. it is one of !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ or any punctuation character specific to the current locale.
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 - wide character

Return value


Non-zero value if the wide character is a punctuation character, zero otherwise.

Notes


ISO_30112 specifies which Unicode characters are include in POSIX punct category.

Example


// Run this code


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


  int main()
  {
      wchar_t c = L'\u2051'; // Two asterisks ('⁑')


      std::cout << std::hex << std::showbase << std::boolalpha;
      std::cout << "in the default locale, iswpunct(" << (std::wint_t)c << ") = "
                << (bool)std::iswpunct(c) << '\n';
      std::setlocale(LC_ALL, "en_US.utf8");
      std::cout << "in Unicode locale, iswpunct(" << (std::wint_t)c << ") = "
                << (bool)std::iswpunct(c) << '\n';
  }

Output:


  in the default locale, iswpunct(0x2051) = false
  in Unicode locale, iswpunct(0x2051) = true

See also


                     checks if a character is classified as punctuation by a locale
ispunct(std::locale) (function template)
                     checks if a character is a punctuation character
ispunct (function)


ASCII values iscntrl isprint isspace isblank isgraph ispunct isalnum isalpha isupper islower isdigit isxdigit
decimal hexadecimal octal characters iswcntrl iswprint iswspace iswblank iswgraph iswpunct iswalnum iswalpha iswupper iswlower iswdigit iswxdigit


0–8 \x0–\x8 \0–\10 control codes (NUL, etc.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 tab (\t) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA–\xD \12–\15 whitespaces (\n, \v, \f, \r) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE–\x1F \16–\37 control codes ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 space 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21–\x2F \41–\57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30–\x39 \60–\71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A–\x40 \72–\100:;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41–\x46 \101–\10ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47–\x5A \107–\13GHIJKLMNOP 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
                              QRSTUVWXYZ
91–96 \x5B–\x60 \133–\14[\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102\x61–\x66 \141–\14abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–12\x67–\x7A \147–\17ghijklmnop 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
                              qrstuvwxyz
123–12\x7B–\x7E \172–\17{|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 backspace character (DEL) ≠0 0 0 0 0 0 0 0 0 0 0 0