Суть программы в том, что для введеного символа надо вывести латинский или русский это символ, также учесть его регистр. Подскажите как сделать это проще.
setlocale(LC_ALL,"Russian");
char i;
cin >>i;
char e1 = 'A';
char e2 = 'Z';
char e3 = 'a';
char e4 = 'z';
char ru1 = 'А';
char ru2 = 'Я';
char ru3 = 'а';
char ru4 = 'я';
if ((i>=e1)&&(i<=e2)){cout <<"ENG";}
if ((i>=e3)&&(i<=e4)){cout <<"eng";}
if ((i>=ru1)&&(i<=ru2)){cout <<"RU";}
if ((i>=ru3)&&(i<=ru4)){cout <<"ru ";}
else{cout <<"error";}
return a.exec();
Эта функция проверяет, является ли символ символом в верхнем регистре:
isupper(character)
Эта функция проверяет, является ли символ символом в нижнем регистре:
islower(character)
Можете использовать их и сократить свои условные выражения
if ((i>=ru1)&&(i<=ru2)){cout <<"RU";}
if ((i>=ru3)&&(i<=ru4)){cout <<"ru ";}
Проверьте только, как эти функции реагируют на русский алфавит. А реагируют они плохо. Вот в этом вопросе обсуждалась эта проблема. Обратите внимание, в ответе говорится, что в настройках студии можно поставить ключ, делающий char
беззнаковым, а можно использовать wchar_t
. Также можете посмотреть в сторону std::locale
из <locale>
.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Есть сервер на Qt/c++, он слушает определенный порт и принимает с него данныеКогда к нему поступают какие-нибудь данные, они выводятся на консоль
В функции matrix_sum видает ошибку , подскажите что я не так написал?
Всем доброго времени сутокОтлавливаю клики мыши, затем преобразую каждый клик, который является центром примитива, в некоторый набор точек