Общая постановка. Пользовательский класс String должен содержать необходимые элементы-данные, которые создаются в динамической области памяти.
· Конструктор для создания строк: String (…);
· Деструктор: ~String();
· Метод ввода исходной строки: Set();
· Метод печати: void print(…);
Код методов – вне пространства определения класса. Программа иллюстрирует прямой и косвенный способы обращения к методам.
Ввести с клавиатуры строку символов S1. Признак окончания ввода строки - нажатие клавиши "Ввод". Программа должна содержать перегруженную операцию «=», использование которой скопирует S1 в S2 .
Исходную и преобразованную строки вывести в файл.
Варианты заданий
1. Длина L нечетная, то удаляется символ, стоящий посередине строки;
2. Длина L четная, то удаляются 2 первых и 2 последних символа;
3. Длина L кратна 2-м, то удаляются все числа, которые делятся на 2;
4. Длина L кратна 3-м, то удаляются все числа, делящиеся на 3;
5. Длина L >10, то удаляются все цифры;
6. Длина L >15, то удаляются все a..z;
7. Длина L=10, то удаляются все A..Z;
8. Длина L кратна 4-м, то первая часть строки меняется местами со второй;
9. Длина L кратна 5-и, то подсчитывается количество скобок всех видов;
10. Длина L >5-и, то выделяется подстрока до первого пробела;
11. Длина L >6-и, то выделяется подстрока { } скобках;
12. Длина L >10-и, то удаляется подстрока в [] скобках;
13. Длина L >12-и, то удаляется подстрока до первой ( скобки;
14. Длина L кратна 4-м, то выделяется подстрока после последнего пробела;
15. Длина L >5, то удаляются все точки.
16. Длина L четная, то выделяется подстрока до первого пробела
17. Длина L четная, то удаляется подстрока до первого пробела
18. Длина L четная, то выделяется подстрока со второго пробела
19. Длина L нечетная, то выделяется подстрока после первого пробела
20. Длина L нечетная, то удаляется подстрока со второго пробела
21. Длина L кратна 3, то удаляется каждый 3-й символ
22. Длина L четная, то удаляется каждый 2-й символ
23. Длина L нечетная, то
24. Длина L четная, то выделяется подстрока до последнего пробела
25. Длина L нечетная, то выделяется подстрока от последней цифры
26. Длина L=15, то удаляются все символы кроме A-Z
27. Длина L делится на 5, то удаляется все символы кроме a-z
28. Длина L четная и >=10, то удаляются все пробелы
29. Длина L нечетная и <12, произвести инверсию (abcdef->fedcba)
30. Длина L >5 и <30, изменить регистр символов (aBcDeF->AbCdEf)
Контрольные вопросы
1. Как объявить динамическую строку в С++?
2. Какие вы знаете функции работы со строками?
3. Как определяются строки при передаче в функцию, в качестве фактических параметров?
4. Поясните механизм перегрузки операций для объектов данного класса.
Работа № 5. Наследование классов, механизм виртуальных функций