std::iswpunct(3)
hey bestie, welcome to the std::iswpunct(3) page from the C++ Standard Libary πβ¨
π NAME π
std::iswpunct β std::iswpunct (yes, the name is literally the name again, and honestly? iconic π
)
β¨ Synopsis β¨
okay so first thing: this lives in the header <cwctype> π«Ά
defined in header <cwctype>
int iswpunct( std::wint_t ch );
It checks if the wide character you hand it is a punctuation character β i.e. it is one of
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
or any punctuation character specific to the current locale. periodt. π
β οΈ important: if the value ofchis neither representable as awchar_tnor equal to the value of the macroWEOF, the behavior is undefined. no cap, do not do that.
π Parameters π
chβ wide character π
πΈ Return value πΈ
Non-zero value if the wide character is a punctuation character, zero otherwise. thatβs it, thatβs the return value π
π¦ Notes π¦
ISO 30112 specifies which Unicode characters are included in the POSIX punct category. (the original wording says βare include,β but weβre keeping the meaning, not the typo β¨)
π₯ Example π₯
run this code, itβs giving main character energy:
// Run this code
#include <clocale>
#include <cwctype>
#include <iostream>
int main()
{
wchar_t c = L'\u2051'; // Two asterisks ('β')
std::cout << std::hex << std::showbase << std::boolalpha
<< "in the default locale, iswpunct("
<< static_cast<std::wint_t>(c) << ") = "
<< static_cast<bool>(std::iswpunct(c)) << '\n';
std::setlocale(LC_ALL, "en_US.utf8");
std::cout << "in Unicode locale, iswpunct("
<< static_cast<std::wint_t>(c) << ") = "
<< static_cast<bool>(std::iswpunct(c)) << '\n';
}
β Output: β
and when you run it, you get:
in the default locale, iswpunct(0x2051) = false
in Unicode locale, iswpunct(0x2051) = true
π See also π
ispunct(std::locale)β checks if a character is classified as punctuation by a locale (function template)ispunctβ checks if a character is a punctuation character (function)- C documentation for
iswpunct
also, the page ships this whole ASCII values classification grid β Iβm keeping every cell because bestie, data is data π :
ASCII values characters iscntrl isprint isspace
isblank isgraph ispunct isalnum isalpha isupper islower isdigit
isxdigit decimal hexadecimal octal iswcntrl iswprint
iswspace iswblank iswgraph iswpunct iswalnum iswalpha iswupper iswlower
iswdigit iswxdigit 0β8 \x0β\x8 \0β\10 control codes β 0
0 0 0 0 0 0 0 0
0 0 0
(NUL, etc.) 9 \x9 \11
tab (\t) β 0 0 β 0 β 0 0 0 0
0 0 0 0 0
whitespaces 10β13 \xAβ\xD \12β\15
(\n, \v, \f, β 0 0 β 0 0 0 0 0
0 0 0 0 0
\r) 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β\106
ABCDEF 0 β 0 0 0 β 0 0 β 0
β 0 β 0 0 0 β 0 71β90 \x47β\x5A \107β\132
GHIJKLMNOP 0 β 0 0 0 β 0 0 β 0
β 0 β 0 0 0 0
QRSTUVWXYZ 91β96 \x5Bβ\x60 \133β\140
[\]^_` 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 97β102 \x61β\x66 \141β\146
abcdef 0 β 0 0 0 β 0 0 β 0
β 0 0 β 0 0 β 0 103β122 \x67β\x7A \147β\172
ghijklmnop 0 β 0 0 0 β 0 0 β 0
β 0 0 β 0 0 0
qrstuvwxyz 123β126 \x7Bβ\x7E \172β\176
{|}~ 0 β 0 0 0 β 0 β 0 0
0 0 0 0 0 127 \x7F \177
backspace β 0 0 0 0 0 0 0
0 0 0 0 0
character (DEL)
source/version/date vibe check: http://cppreference.com, 2024.06.10, std::iswpunct(3) β thatβs the footer, mwah π
π¦ where this page comes from
- nixpkgs unstable: stdman 2024.07.05
- opensuse-leap 16.0: stdman 2024.07.05-bp160.1.9 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms