Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Проверка типа содержимого широкого символа
Для проверки типа содержимого широкого символа предназначены следующие функции:
iswdigit()
— возвращает ненулевое значение, если символ является десятичной цифрой, в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswdigit(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswdigit(L'w') << std::endl; // 0
std::wcout << std::iswdigit(L'2') << std::endl; // 4
std::wcout << std::iswdigit(L'б') << std::endl; // 0
iswxdigit()
— возвращает ненулевое значение, если символ является шестнадцатеричной цифрой (число от0
до9
или буква отA
доF
; регистр не имеет значения), в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswxdigit(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswxdigit(L'8') << std::endl; // 128
std::wcout << std::iswxdigit(L'a') << std::endl; // 128
std::wcout << std::iswxdigit(L'F') << std::endl; // 128
std::wcout << std::iswxdigit(L'g') << std::endl; // 0
iswalpha()
— возвращает ненулевое значение, если символ является буквой, в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswalpha(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswalpha(L'w') << std::endl; // 258
std::wcout << std::iswalpha(L'2') << std::endl; // 0
std::wcout << std::iswalpha(L'б') << std::endl; // 258
std::wcout << std::iswalpha(L'Б') << std::endl; // 257
iswspace()
— возвращает ненулевое значение, если символ является пробельным символом (пробелом, табуляцией, переводом строки или возвратом каретки), в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswspace(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswspace(L'w') << std::endl; // 0
std::wcout << std::iswspace(L'\n') << std::endl; // 8
std::wcout << std::iswspace(L'\t') << std::endl; // 8
std::wcout << std::iswspace(L'б') << std::endl; // 0
iswalnum()
— возвращает ненулевое значение, если символ является буквой или цифрой, в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswalnum(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswalnum(L'w') << std::endl; // 258
std::wcout << std::iswalnum(L'8') << std::endl; // 4
std::wcout << std::iswalnum(L'\t') << std::endl; // 0
std::wcout << std::iswalnum(L'б') << std::endl; // 258
iswlower()
— возвращает ненулевое значение, если символ является буквой в нижнем регистре, в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswlower(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswlower(L'w') << std::endl; // 2
std::wcout << std::iswlower(L'8') << std::endl; // 0
std::wcout << std::iswlower(L'\t') << std::endl; // 0
std::wcout << std::iswlower(L'б') << std::endl; // 2
std::wcout << std::iswlower(L'Б') << std::endl; // 0
iswupper()
— возвращает ненулевое значение, если символ является буквой в верхнем регистре, в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswupper(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswupper(L'W') << std::endl; // 1
std::wcout << std::iswupper(L'8') << std::endl; // 0
std::wcout << std::iswupper(L'\t') << std::endl; // 0
std::wcout << std::iswupper(L'б') << std::endl; // 0
std::wcout << std::iswupper(L'Б') << std::endl; // 1
iswpunct()
— возвращает ненулевое значение, если символ является символом пунктуации, в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswpunct(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswpunct(L'8') << std::endl; // 0
std::wcout << std::iswpunct(L'f') << std::endl; // 0
std::wcout << std::iswpunct(L',') << std::endl; // 16
std::wcout << std::iswpunct(L'.') << std::endl; // 16
std::wcout << std::iswpunct(L' ') << std::endl; // 0
iswprint()
— возвращает ненулевое значение, если символ является печатаемым (включая пробел), в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswprint(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswprint(L'8') << std::endl; // 4
std::wcout << std::iswprint(L'\x5') << std::endl; // 0
std::wcout << std::iswprint(L' ') << std::endl; // 64
std::wcout << std::iswprint(L'б') << std::endl; // 258
iswgraph()
— возвращает ненулевое значение, если символ является печатаемым (пробел печатаемым не считается), в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswgraph(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswgraph(L'8') << std::endl; // 4
std::wcout << std::iswgraph(L'\x5') << std::endl; // 0
std::wcout << std::iswgraph(L' ') << std::endl; // 0
std::wcout << std::iswgraph(L'б') << std::endl; // 258
iswcntrl()
— возвращает ненулевое значение, если символ является непечатаемым, в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswcntrl(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswcntrl(L'8') << std::endl; // 0
std::wcout << std::iswcntrl(L'\x5') << std::endl; // 32
std::wcout << std::iswcntrl(L' ') << std::endl; // 0
iswblank()
— возвращает ненулевое значение, если символ является пробельным (пробел, горизонтальная табуляция и др.), в противном случае —0
. Прототип функции:
#include <cwchar> /* или #include <wchar.h> */
int iswblank(wint_t ch);
Пример:
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
std::wcout << std::iswblank(L'8') << std::endl; // 0
std::wcout << std::iswblank(L'\t') << std::endl; // 1
std::wcout << std::iswblank(L' ') << std::endl; // 1
В качестве примера проверим регистр символа и выведем соответствующее сообщение, а затем преобразуем символ к верхнему регистру и выведем его в окно консоли (листинг 8.1).
Листинг 8.1. Пример работы с расширенными символами
#include <iostream>
#include <clocale>
#include <cwchar>
int main() {
_wsetlocale(LC_ALL, L"Russian_Russia.1251");
wchar_t ch = L'п';
if (std::iswlower(ch)) {
std::wcout << L"Строчная" << std::endl;
}
else {
std::wcout << L"Прописная" << std::endl;
} // Результат: Строчная
ch = std::towupper(ch);
std::wcout << ch << std::endl; // П
return 0;
}
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов