Namespaces
Variants
Views
Actions

Difference between revisions of "cpp/string/wide/iswblank"

From cppreference.com
< cpp‎ | string‎ | wide
m (Use since= and until= params of {{ddcl}} template.)
m (http -> https)
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{cpp/title|iswblank}}
 
{{cpp/title|iswblank}}
 
{{cpp/string/wide/navbar}}
 
{{cpp/string/wide/navbar}}
{{ddcl | header=cwctype | since=c++11 |
+
{{ddcl|header=cwctype|since=c++11|
 
int iswblank( std::wint_t ch );
 
int iswblank( std::wint_t ch );
 
}}
 
}}
  
 
Checks if the given wide character is classified as blank character (that is, a whitespace character used to separate words in a sentence) by the current C locale. In the default C locale, only space ({{tt|0x20}}) and horizontal tab ({{tt|0x09}}) are blank characters.
 
Checks if the given wide character is classified as blank character (that is, a whitespace character used to separate words in a sentence) by the current C locale. In the default C locale, only space ({{tt|0x20}}) and horizontal tab ({{tt|0x09}}) are blank characters.
 +
 +
{{cpp/string/wide/wint_t args}}
  
 
===Parameters===
 
===Parameters===
 
{{par begin}}
 
{{par begin}}
{{par | ch | wide character}}
+
{{par|ch|wide character}}
 
{{par end}}
 
{{par end}}
  
 
===Return value===
 
===Return value===
Non-zero value ({{c|true}}) if the wide character is a blank character, {{tt|0}} ({{c|false}}) otherwise.
+
Non-zero value if the wide character is a blank character, zero otherwise.
 +
 
 +
===Notes===
 +
[https://www.open-std.org/JTC1/SC35/WG5/docs/30112d10.pdf ISO 30112] defines POSIX blank characters as Unicode characters U+0009, U+0020, U+1680, U+180E, U+2000..U+2006, U+2008, U+200A, U+205F, and U+3000.
  
 
===Example===
 
===Example===
{{example |
+
{{example
| code=
+
|code=
#include <iostream>
+
#include <cwctype>
+
 
#include <clocale>
 
#include <clocale>
 +
#include <cwctype>
 +
#include <iostream>
  
 
int main()
 
int main()
Line 33: Line 38:
 
               << (bool)std::iswblank(c) << '\n';
 
               << (bool)std::iswblank(c) << '\n';
 
}
 
}
| output=
+
|output=
 
in the default locale, iswblank(0x3000) = false
 
in the default locale, iswblank(0x3000) = false
 
in Unicode locale, iswblank(0x3000) = true
 
in Unicode locale, iswblank(0x3000) = true
Line 40: Line 45:
 
===See also===
 
===See also===
 
{{dsc begin}}
 
{{dsc begin}}
{{dsc inc | cpp/locale/dsc isblank}}
+
{{dsc inc|cpp/locale/dsc isblank}}
{{dsc inc | cpp/string/byte/dsc isblank}}
+
{{dsc inc|cpp/string/byte/dsc isblank}}
{{dsc see c | c/string/wide/iswblank}}
+
{{dsc see c|c/string/wide/iswblank}}
 
{{dsc end}}
 
{{dsc end}}
 
{{cpp/string/character classes}}
 
{{cpp/string/character classes}}
  
[[de:cpp/string/wide/iswblank]]
+
{{langlinks|de|es|fr|it|ja|pt|ru|zh}}
[[es:cpp/string/wide/iswblank]]
+
[[fr:cpp/string/wide/iswblank]]
+
[[it:cpp/string/wide/iswblank]]
+
[[ja:cpp/string/wide/iswblank]]
+
[[pt:cpp/string/wide/iswblank]]
+
[[ru:cpp/string/wide/iswblank]]
+
[[zh:cpp/string/wide/iswblank]]
+

Latest revision as of 09:21, 15 September 2023

Defined in header <cwctype>
int iswblank( std::wint_t ch );
(since C++11)

Checks if the given wide character is classified as blank character (that is, a whitespace character used to separate words in a sentence) by the current C locale. In the default C locale, only space (0x20) and horizontal tab (0x09) are blank characters.

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.

Contents

[edit] Parameters

ch - wide character

[edit] Return value

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

[edit] Notes

ISO 30112 defines POSIX blank characters as Unicode characters U+0009, U+0020, U+1680, U+180E, U+2000..U+2006, U+2008, U+200A, U+205F, and U+3000.

[edit] Example

#include <clocale>
#include <cwctype>
#include <iostream>
 
int main()
{
    wchar_t c = L'\u3000'; // Ideographic space (' ')
 
    std::cout << std::hex << std::showbase << std::boolalpha;
    std::cout << "in the default locale, iswblank(" << (std::wint_t)c << ") = "
              << (bool)std::iswblank(c) << '\n';
    std::setlocale(LC_ALL, "en_US.utf8");
    std::cout << "in Unicode locale, iswblank(" << (std::wint_t)c << ") = "
              << (bool)std::iswblank(c) << '\n';
}

Output:

in the default locale, iswblank(0x3000) = false
in Unicode locale, iswblank(0x3000) = true

[edit] See also

checks if a character is classified as a blank character by a locale
(function template) [edit]
(C++11)
checks if a character is a blank character
(function) [edit]
C documentation for iswblank
ASCII values characters

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

decimal hexadecimal octal
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 GHIJKLMNOP
QRSTUVWXYZ
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 ghijklmnop
qrstuvwxyz
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