Namespaces
Variants

std:: iswprint

From cppreference.net
Определено в заголовке <cwctype>
int iswprint ( std:: wint_t ch ) ;

Проверяет, является ли заданный широкий символ печатаемым, то есть он представляет собой либо цифру ( 0123456789 ), заглавную букву ( ABCDEFGHIJKLMNOPQRSTUVWXYZ ), строчную букву ( abcdefghijklmnopqrstuvwxyz ), знак пунктуации ( !"#$%&'()*+,-./:;<=>?@[\]^_`{!}~ ), пробел или любой другой печатаемый символ, специфичный для текущей локали C.

Если значение ch не представимо как wchar_t и не равно значению макроса WEOF , поведение не определено.

Содержание

Параметры

ch - широкий символ

Возвращаемое значение

Ненулевое значение, если широкий символ может быть напечатан, и ноль в противном случае.

Примечания

ISO 30112 определяет, какие символы Юникода включены в категорию POSIX print.

Пример

#include <clocale>
#include <cwctype>
#include <iostream>
void demo_iswprint(std::string_view rem, const std::wint_t c)
{
    std::cout << std::boolalpha << std::hex << std::showbase
              << rem << "iswprint('" << c << "') = "
              << !!std::iswprint(c) << '\n';
}
int main()
{
    const wchar_t c1 = L'\u2002'; // en-space
    const wchar_t c2 = L'\u0082'; // break permitted
    demo_iswprint("In default locale:\n", c1);
    std::setlocale(LC_ALL, "en_US.utf8");
    demo_iswprint("In Unicode locale:\n", c1);
    demo_iswprint("", c2);
}

Возможный вывод:

In default locale:
iswprint('0x2002') = false
In Unicode locale:
iswprint('0x2002') = true
iswprint('0x82') = false

Смотрите также

проверяет, классифицируется ли символ как печатаемый в локали
(function template)
проверяет, является ли символ печатаемым
(function)
C documentation для iswprint
**Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Кодовых последовательностей в тегах ` ` (не подлежат переводу) - Числовых значений и специальных символов - Символа "–" (тире), который является стандартным разделителем диапазонов Форматирование полностью сохранено в соответствии с исходным кодом. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - все содержимое состоит из числовых значений, шестнадцатеричных кодов, символов и HTML-тегов, которые согласно инструкциям не подлежат переводу. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые значения (58–64) не требуют перевода - Содержимое внутри тегов ` ` не переводится согласно инструкциям - Символы `–` являются разделителями диапазонов - Специальные символы и escape-последовательности сохраняются без изменений - Значения `0` и `≠0` являются техническими обозначениями и не переводятся **Примечание:** В данном HTML-фрагменте переводу подлежал только числовой диапазон "65–70" в первой ячейке таблицы, который был оставлен без изменений, так как представляет собой числовые значения (коды символов ASCII), которые не требуют перевода. Весь остальной текст находится внутри тегов ` ` или является C++ специфическими терминами и символами, которые согласно инструкциям не подлежат переводу. **Примечание:** В данном HTML-фрагменте не содержится текста для перевода на русский язык. Все элементы представлены: - Числовыми диапазонами (71–90) - Шестнадцатеричными (\x47–\x5A) и восьмеричными (\107–\132) кодами - Буквенными последовательностями (GHIJKLMNOP, QRSTUVWXYZ) - Математическими символами (0, ≠0) Согласно вашим требованиям, эти элементы не подлежат переводу. **Примечание:** В данном HTML-фрагменте весь текст, который требовалось перевести, уже находится внутри тегов ` `, поэтому перевод не выполнен в соответствии с указанными правилами. Единственный текст вне тегов кода - это диапазон "91–96" и дефис между тегами ` `, но они представляют числовые значения и символы, которые не подлежат переводу. **Примечание:** В данном HTML-фрагменте не содержится текста для перевода на русский язык. Все элементы представляют собой: - Числовые диапазоны (97–102) - Специальные символы и escape-последовательности в тегах ` ` - Математические символы (≠0) - HTML-разметку и атрибуты Согласно вашим требованиям, содержимое тегов ` ` и математические символы не подлежат переводу. **Примечание:** В данном HTML-фрагменте: - Все HTML-теги и атрибуты сохранены без изменений - Текст внутри тегов ` ` и `
` не переведен (шестнадцатеричные коды, символы, числа)
- Единственный переводимый текст "–" (тире) между тегами `` уже является стандартным символом и не требует перевода
- C++ специфические термины сохранены в оригинале
**Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - содержатся только числовые значения, шестнадцатеричные коды, символы и математические обозначения, которые согласно инструкциям не подлежат переводу. Весь контент внутри тегов ` ` и числовые значения сохранены в оригинальном виде.
Значения ASCII символы

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

десятичное шестнадцатеричное восьмеричное
0–8 \x0 \x8 \0 \10 управляющие коды ( NUL и др.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 табуляция ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 пробельные символы ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 управляющие коды ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 пробел 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 символ удаления ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0