Добавьте в класс MyString функции ввода и вывода строки.

3H: Нижний регистр

Дана строка, возможно, содержащая пробелы. Считайте эту строку и переведите все символы этой строки в нижний регистр. Решение оформите в виде функции void MyString::toLower(), получающей в качестве параметра строку по ссылке и изменяющая символы этой строки.

Ввод Вывод
Hello, world!
hello, world!

3I: Проверить строки на равенство

Даны две строки (возможно, с пробелами). Проверьте, равны ли они. Если строки равны, выведите слово YES, если строки не равны, выведите слово NO.

Решение оформите в виде перегрузки оператора ==
bool operator == (MyString &S1, MyString &S2).

Ввод Вывод
Hi
HI
NO
Bye
Bye
YES

3J: Извлечь цифры

Дана строка, возможно, содержащая пробелы. Извлеките из этой строки все символы, являющиеся цифрами и составьте из них новую строку. Решение оформите в виде функции MyString MyString::еxtractDigits(), возвращающую новую строку, содержащую только цифры данной строки.

Указание. Заведите строку answer, пройдите по всем символам данной строки, при обнаружении цифры добавляйте ее в конец строки answer, увеличивая ее размер на 1. По завершении цикла верните значение answer.

Ввод Вывод
2+2=4
224

3K: Значение выражения - 1

Дана строка, состоящая из n цифр, между которыми стоит n-1 знак операции, каждый из которых может быть либо +, либо -. Вычислите значение данного выражения.

Решение оформите в виде функции int MyString::evaluate().

Ввод Вывод
1+2-3
0

3L: StrToInt

Дана строка, содержащее запись в виде символов целого числа от 0 до 109-1. Определите значение этого числа в виде переменной int. Решение задачи оформите в виде конструктора, принимающего intint.

Ввод Вывод
179
179

4A: Самое длинное слово

Дана строка. Найдите в этой строке самое длинное слово и выведите его. Если в строке несколько слов одинаковой максимальной длины, выведите первое из них. Решение оформите в виде функции MyString MyString::longestWord().

Ввод Вывод
In a hole in the ground there lived a hobbit.
ground

4B: Слова с прописной буквы

Дана строка. Измените регистр символов в этой строке так, чтобы первая буква каждого слова была заглавной, а остальные буквы - строчными.

Решение оформите в виде функции void MyString::capitalization().

Ввод Вывод
In a hole in the ground there lived a hobbit.
In A Hole In The Ground There Lived A Hobbit.

4C: Шифр Цезаря

В шифре Цезаря каждый символ заменяется на другой символ, третий по счету в алфавите после данного, с цикличность. То есть символ A заменяется на D, символ B - на E, символ C - на F, ..., символ Z на C. Аналогично строчные буквы заменяются на строчные буквы. Все остальные символы не меняются.

Дана строка, зашифруйте ее при помощи шифра Цезаря. Решение оформите в виде функции void MyString::caesarCipher().

Указание: сделайте функцию char CaesarCipher (char c), шифрующую один данный символ.

Ввод Вывод
In a hole in the ground there lived a hobbit.
Lq d kroh lq wkh jurxqg wkhuh olyhg d kreelw.

4F: Поиск подстроки

Даны две строки, возможно, содержащие пробелы. Выведите слово YES, если первая строка является подстрокой второй строки или слово NO в противном случае.

Решение оформите в виде функции bool MyString::isSubstring(const string & pattern).

Ввод Вывод
hole in the ground
In a hole in the ground there lived a hobbit.
YES
hole on the ground
In a hole in the ground there lived a hobbit.
NO

5B: Палиндром - 2

Дана строка, возможно, содержащая пробелы. Определите, является ли эта строка палиндромом, при условии, что заглавные и строчные буквы не различаются, а все символы, не являющиеся буквами, должны быть пропущены. Выведите слово YES, если слово является палиндромом и словов NO, если не является.

Решение оформите в виде функции bool MyString::isPalindrome(). При решении этой задачи нельзя пользоваться вспомогательными массивами или строками.

Ввод Вывод
Was it a rat I saw?
YES
abca
NO

5C: Удалите лишние пробелы

Строка состоит из одного или нескольких слов, разделенных одним или несколькими пробелами. Удалите из строки лишние пробелы: два и более подряд идущих пробелов замените на один и удалите все пробелы в начале и в конце строки.

Сложность алгоритма должна быть пропорциональная длине исходной строки.

После вывода результата на экран выводите обязательно символ конца строки!

Решение оформите в виде функции MyString MyString::delExtraSpaces().

В примере ниже для наглядности пробелы изображаются при помощи символа “·”.

Ввод Вывод
·one··two···three··
one·two·three