Во всех задачах нужно реализовать функции класса MyString и использовать их в main()
Дана строка, возможно, содержащая пробелы. Считайте эту строку и переведите все символы этой строки в
нижний регистр. Решение оформите в виде функции void MyString::to_lower(),
Для перевода одного символа в нижний регистр напишите отдельную функцию.
| Ввод | Вывод |
|---|---|
Hello, world! |
hello, world! |
Даны две строки (возможно, с пробелами). Проверьте, равны ли они. Если строки равны, выведите
слово YES, если строки не равны, выведите слово NO.
Решение оформите в виде функции bool MyString::operator == (MyString &s).
| Ввод | Вывод |
|---|---|
Hi |
NO |
Bye |
YES |
Даны две строки, не содержащие пробелов. Выведите конкатенацию этих строк.
Решение оформите в виде функции MyString MyString::operator +(MyString& s),
| Ввод | Вывод |
|---|---|
abcd |
abcdxyz |
Дана строка и параметры \(i\), \(k\). Напишите функцию, которая возвращает подстроку данной строки, начиная с символа с индексом \(i\) и длиной \(k\).
Решение оформите в виде функции MyString substr(int i, int k).
Если \(i<0\), или \(i\ge s.size()\) или \(k<0\), то функция должна возвращать пустую строку.
Если \(i+k\ge s.size()\), то возвращается строка длиной \(s.size() - i\), то есть до конца строки.
| Ввод | Вывод |
|---|---|
abcdefghijk |
cdef |
abcdefghijk |
ghijk |
Дана строка и параметры \(i\), \(k\). Напишите функцию, которая удаляет из данной строки подстроку начиная с символа с индексом \(i\) и длиной \(k\).
Решение оформите в виде функции void MyString::erase(int i, int k),
которая модифицирует данную строку, не возвращая значения.
Если \(i<0\), или \(i\ge s.size()\) или \(k<0\), то функция не модифицирует исходную строку.
Если \(i+k\ge s.size()\), то удаляются все символы начиная с \(i\)-го до конца строки.
Программа не должна использовать дополнительные вспомогательные строки.
| Ввод | Вывод |
|---|---|
abcdefghijk |
abghijk |
abcdefghijk |
abcdef |
Дана строка \(s\), параметр \(i\), другая строка \(t\). Напишите функцию, которая вставляет в данную строку \(s\) начиная с индекса \(i\) строку \(t\).
Решение оформите в виде функции void MyString::insert(MyString &s, int i),
которая модифицирует данную строку, не возвращая значения.
Если \(i<0\) или \(i\gt s.size()\), функция не модифицирует исходную строку.
| Ввод | Вывод |
|---|---|
abcde |
abxyzcde |
Дана строка, состоящая из n цифр, между которыми стоит n-1 знак операции, каждый из которых может быть либо +, либо -. Вычислите значение данного выражения.
Решение оформите в виде функции int MyString::evaluate().
| Ввод | Вывод |
|---|---|
1+2-3 |
0 |
Дана строка, содержащее запись в виде символов целого числа от
0 до 109-1. Определите значение этого числа в виде переменной
int. Решение задачи оформите в виде функции
int MyString::to_int().
| Ввод | Вывод |
|---|---|
179 |
179 |
Дана целое число от -109+1 до 109-1. Запишите это число в строку, то есть выполните преобразование, обратное предыдущей задаче (но только допускаются отрицательные числа).
Решение задачи оформите в виде конструктора
MyString::MyString(int n).
| Ввод | Вывод |
|---|---|
-179 |
-179 |