std::iswspace(3)
π NAME π
okay so this page is std::iswspace(3), and the manual name up top says C++ Standard Libary β yes, Libary with that exact spelling, and we are not fixing it, it's iconic π
. The NAME line itself is std::iswspace - std::iswspace, which is the manual equivalent of "it's giving itself" β slay.
β¨ Synopsis β¨
Defined in header <cwctype>, and the signature is literally:
Defined in header <cwctype>
int iswspace( wint_t ch );
It checks if the given wide character is a wide whitespace character as classified by the currently installed C locale. In the default locale, the whitespace characters are the following:
- Space (
0x20,' ') - Form feed (
0x0c,'\f') - Line feed (
0x0a,'\n') - Carriage return (
0x0d,'\r') - Horizontal tab (
0x09,'\t') - Vertical tab (
0x0b,'\v').
π¨ Undefined behavior alert: if the value ofchis neither representable as awchar_tnor equal to the value of the macroWEOF, the behavior is undefined. Like, do not do that, bestie π.
π Parameters π
chβ wide character.
π Return value π
Non-zero value if the wide character is a whitespace character, zero otherwise.
π¦ Notes π¦
ISO 30112 defines POSIX space characters as Unicode characters U+0009..U+000D, U+0020, U+1680, U+180E, U+2000..U+2006, U+2008..U+200A, U+2028, U+2029, U+205F, and U+3000.
πΈ Example πΈ
Demonstrates the use of iswspace with different locales.
// Run this code
#include <clocale>
#include <cwctype>
#include <iostream>
void try_with(wchar_t c, const char* loc)
{
std::setlocale(LC_ALL, loc);
std::wcout << "isspace('" << c << "') in " << loc << " locale returned "
<< std::boolalpha << static_cast<bool>(std::iswspace(c)) << '\n';
}
int main()
{
const wchar_t EM_SPACE = L'\u2003'; // Unicode character 'EM SPACE'
try_with(EM_SPACE, "C");
try_with(EM_SPACE, "en_US.UTF8");
}
Output:
isspace(' ') in C locale returned false
isspace(' ') in en_US.UTF8 locale returned true
β See also β
isspace(std::locale)β checks if a character is classified as whitespace by a locale (function template)isspaceβ checks if a character is a space character (function)- C documentation for
iswspace
π ASCII values chart π
Then the page drops this whole ASCII values chart. Header names, in the page's order: 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.
The rows below carry the 12 narrow values exactly as the page gives them β no invented wide duplicates, bestie π«Ά.
decimal hexadecimal octal characters iscntrl isprint isspace isblank isgraph ispunct isalnum isalpha isupper islower isdigit isxdigit
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β\106 ABCDEF 0 β 0 0 0 β 0 0 β 0 β 0 β 0 0 0 β 0
71β90 \x47β\x5A \107β\132 GHIJKLMNOPQRSTUVWXYZ 0 β 0 0 0 β 0 0 β 0 β 0 β 0 0 0 0
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 ghijklmnopqrstuvwxyz 0 β 0 0 0 β 0 0 β 0 β 0 0 β 0 0 0
123β126 \x7Bβ\x7E \172β\176 {|}~ 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
okay that's the whole page, bestie π β source/version is http://cppreference.com, date is 2024.06.10, and the footer is just std::iswspace(3) again. slay, periodt π
π
π¦ 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