Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Проверка типа содержимого символа
Для проверки типа содержимого символа предназначены следующие функции:
isdigit()
и_isdigit_l()
— возвращают ненулевое значение, если символ является десятичной цифрой, в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isdigit(int ch);
int _isdigit_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isdigit('w') << std::endl; // 0
std::cout << std::isdigit('2') << std::endl; // 1
std::cout << std::isdigit((unsigned char)'б')
<< std::endl; // 0
isxdigit()
и_isxdigit_l()
— возвращают ненулевое значение, если символ является шестнадцатеричной цифрой (число от0
до9
или буква отA
доF
; регистр не имеет значения), в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isxdigit(int ch);
int _isxdigit_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isxdigit('8') << std::endl; // 128
std::cout << std::isxdigit('a') << std::endl; // 128
std::cout << std::isxdigit('F') << std::endl; // 128
std::cout << std::isxdigit('g') << std::endl; // 0
isalpha()
и_isalpha_l()
— возвращают ненулевое значение, если символ является буквой, в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isalpha(int ch);
int _isalpha_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isalpha('w') << std::endl; // 258
std::cout << std::isalpha('2') << std::endl; // 0
std::cout << std::isalpha((unsigned char)'б')
<< std::endl; // 258
std::cout << std::isalpha((unsigned char)'Б')
<< std::endl; // 257
isspace()
и_isspace_l()
— возвращают ненулевое значение, если символ является пробельным символом (пробелом, табуляцией, переводом строки или возвратом каретки), в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isspace(int ch);
int _isspace_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isspace('w') << std::endl; // 0
std::cout << std::isspace('\n') << std::endl; // 8
std::cout << std::isspace('\t') << std::endl; // 8
std::cout << std::isspace((unsigned char)'б')
<< std::endl; // 0
isalnum()
и_isalnum_l()
— возвращают ненулевое значение, если символ является буквой или цифрой, в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isalnum(int ch);
int _isalnum_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isalnum('w') << std::endl; // 258
std::cout << std::isalnum('8') << std::endl; // 4
std::cout << std::isalnum('\t') << std::endl; // 0
std::cout << std::isalnum((unsigned char)'б')
<< std::endl; // 258
islower()
и_islower_l()
— возвращают ненулевое значение, если символ является буквой в нижнем регистре, в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int islower(int ch);
int _islower_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::islower('w') << std::endl; // 2
std::cout << std::islower('8') << std::endl; // 0
std::cout << std::islower('\t') << std::endl; // 0
std::cout << std::islower((unsigned char)'б')
<< std::endl; // 2
std::cout << std::islower((unsigned char)'Б')
<< std::endl; // 0
isupper()
и_isupper_l()
— возвращают ненулевое значение, если символ является буквой в верхнем регистре, в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isupper(int ch);
int _isupper_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isupper('W') << std::endl; // 1
std::cout << std::isupper('8') << std::endl; // 0
std::cout << std::isupper('\t') << std::endl; // 0
std::cout << std::isupper((unsigned char)'б')
<< std::endl; // 0
std::cout << std::isupper((unsigned char)'Б')
<< std::endl; // 1
ispunct()
и_ispunct_l()
— возвращают ненулевое значение, если символ является символом пунктуации, в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int ispunct(int ch);
int _ispunct_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::ispunct('8') << std::endl; // 0
std::cout << std::ispunct('f') << std::endl; // 0
std::cout << std::ispunct(',') << std::endl; // 16
std::cout << std::ispunct('.') << std::endl; // 16
std::cout << std::ispunct(' ') << std::endl; // 0
isprint()
и_isprint_l()
— возвращают ненулевое значение, если символ является печатаемым (включая пробел), в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isprint(int ch);
int _isprint_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isprint('8') << std::endl; // 4
std::cout << std::isprint('\x5') << std::endl; // 0
std::cout << std::isprint(' ') << std::endl; // 64
std::cout << std::isprint((unsigned char)'б')
<< std::endl; // 258
isgraph()
и_isgraph_l()
— возвращают ненулевое значение, если символ является печатаемым (пробел печатаемым не считается), в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int isgraph(int ch);
int _isgraph_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isgraph('8') << std::endl; // 4
std::cout << std::isgraph('\x5') << std::endl; // 0
std::cout << std::isgraph(' ') << std::endl; // 0
std::cout << std::isgraph((unsigned char)'б')
<< std::endl; // 258
iscntrl()
и_iscntrl_l()
— возвращают ненулевое значение, если символ является непечатаемым, в противном случае —0
. Прототипы функций:
#include <cctype> /* или #include <ctype.h> */
int iscntrl(int ch);
int _iscntrl_l(int ch, _locale_t locale);
Для русских букв необходимо настроить локаль или указать ее в параметре locale
. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::iscntrl('8') << std::endl; // 0
std::cout << std::iscntrl('\x5') << std::endl; // 32
std::cout << std::iscntrl(' ') << std::endl; // 0
isblank()
— возвращает ненулевое значение, если символ является пробельным (пробел, горизонтальная табуляция и др.), в противном случае —0
. Прототип функции:
#include <cctype> /* или #include <ctype.h> */
int isblank(int ch);
Для русских букв необходимо настроить локаль. Пример:
std::setlocale(LC_ALL, "Russian_Russia.1251");
std::cout << std::isblank('8') << std::endl; // 0
std::cout << std::isblank('\t') << std::endl; // 1
std::cout << std::isblank(' ') << std::endl; // 1
Обратите внимание на то, что перед русскими буквами указывается операция приведения к типу unsigned char
. Если приведение типов не указать, то производится попытка преобразования к типу unsigned int
. Так как коды русских букв по умолчанию имеют отрицательные значения, знаковый бит станет причиной большого значения, которое выходит за рамки диапазона значений для типа char
. Например, для буквы «б»
значение будет равно 4294967265
. Пример:
std::cout << (unsigned int)(unsigned char)'б'
<< std::endl; // 225
std::cout << (unsigned int)'б'
<< std::endl; // 4294967265
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов