Строки в Python
Язык Python предоставляет широкие возможности для работы со строками. В частности, методы split() и strip() позволяют осуществлять эффективный парсинг данных, метод join() — осуществлять конкатенацию произвольного числа строк через заданный разделитель; методы lower(), upper() и capitalize() — работать с регистрами, метод translate() — осуществлять перевод по заданной таблице-словарю.
А ещё строку можно умножать на число!
Вам предлагается расширить возможности класса std::string в C++. Разработайте класс str, обладающий не только методами std::string, но и некоторыми из следующих:
-
(3) : Метод split(optional: str) -> std::vector<str> осуществляет разбиение строки по данному разделителю.
Если разделитель не задан, то таковыми являются пробельные символы:
сам whitespace и символ перевода строки «\n»,
(+1) : возврата каретки «\r», табуляции «\t» вертикальной табуляции «\v» и form feed «\f».
(+1) : Метод rsplit(optional: str) -> std::vector выполняет аналогичные операции, но справа налево. -
(2) : Метод strip(optional: str) -> str позволяет убрать переданные ему символы с обоих концов строки,
иначе обрезаются пробельные (0 (+1 аналогично 1-му пункту)).
(+1) : Аналогично устроены lstrip() и rstrip(), производящие аналогичные действия только с одной из сторон.
- (1) : Метод join(std::vector<str>) -> str, принимая вектор строк, осуществляет их конкатенацию, перемежая исходной.
-
(1) : Методы lower() -> str, upper() -> str изменяют регистр всех символов строки
на верхний и нижний соответственно.
(1) : Метод capitalize() -> str переводит в верхний регистр первую букву в каждом слове. - (2) : Метод translate(std::vector<std::pair<str, str>>) -> str.
- (1) : Оператор умножения на натуральное число operator*(unsigned N) -> str, осуществляющий конкатенацию строки с собой N раз.
(3) : Также попробуйте реализовать указанный функционал с помощью паттерна Декоратор (Decorator)