Задача
Степан успешно прошёл собеседование и вот уже как четыре месяца работает в одной из самых престижных ИТ компаний. Пришло время сдавать проект менеджеру и Степан, как настоящий студент, всё делает в последнюю ночь перед сдачей. Набирает текст Степан необычно очень быстро, но невнимательно. Вот и в этот раз последнюю часть текста он набрал не обратив внимания, что случайно нажал клавишу [latex]caps[/latex] [latex]lock[/latex]. Таким образом большие буквы были набраны маленькими, а маленькие — большими. Другие символы он набрал верно. Степан настолько устал, что нет сил исправить ошибки, и он решил несколько часов поспать.
Помогите Степану, пока он спит, напишите программу, которая исправляет невнимательно набранный текст.
Входные данные
В одной строке содержится невнимательно набранный Степаном текст. В строке не более [latex]500[/latex] символов.
Выходные данные
Вывести исправленный текст.
Тесты
Входные данные | Выходные данные |
[latex]sCHOOL[/latex] | [latex]School[/latex] |
[latex]hOME[/latex] | [latex]Home[/latex] |
[latex]hAPPY[/latex] [latex]nEW[/latex] [latex]yEAR[/latex] | [latex]Happy[/latex] [latex]New[/latex] [latex]Year[/latex] |
[latex]uNIVERSITY[/latex] | [latex]University[/latex] |
[latex]mERRY[/latex] [latex]cHRISTMAS[/latex] | [latex]Merry[/latex] [latex]Christmas[/latex] |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <iostream> #include <cctype> using namespace std; int main() { char a; while((a = cin.get()) != EOF){ if(islower(a)) a = toupper(a); else a = tolower(a); cout << a; } return 0; } |
Решение задачи
Для решения задачи использовали библиотеку cctype. Вводим по одному символу до конца ввода и проверяем каким регистром написан символ c помощью функции islower(a). Меняем его на обратный ( функция toupper(a) или tolower(a) ) и выводим символ. Задача решена.
Ссылки
Условие задачи на e-olymp
Код решения на ideone.com
Исправил
Хорошо. только опишите поведение функции tolower() для не букв.