#include <stdlib.h>
#include <iostream>
#include <cstring>
using namespace std;
//СОЗДАЕМ СОБСТВЕННЫЙ КЛАСС
class stroka
{
public:
stroka (char*); //конструктор класса принимающий один параметр
void operator+(char const*); //определение оператора +
void operator-(char); //определение оператора -
void show_stroka(void); //метод класса для отображения строки
private:
char data[256]; //символьный массив, доступный только классу
};
stroka::stroka(char *str) //Транзитом через конструктор
{
strcpy(data, str); //копируем в символьный массив класса данные из принимаемой извне строки
}
void stroka::operator+(char const* str) //Определяем оператор +
{
strcat(data, str); //как функцию сложения двух строк
}
void stroka::operator-(char letter)//Определяем оператор -
{
char temp[256]; // будем создавать новую строку
int i, j; //счетчики циклов
//Проходим по всей строке класса с помощью цикла и если символ строки не равен принятому символу (параметру), то копируем его в новую строку
for (i = 0, j = 0; data[i]; ++i) if (data[i] != letter) temp[j++] = data[i];
temp[j] = '\0';
strcpy(data, temp); //Копируем новую строку в символьный массив класса
}
void stroka::show_stroka(void)
{
cout << data << endl; //Показываем символьный массив класса
}
int main()
{
char st[256], st2[256]; //Объявление двух указателей для строк
cin.get(st, 256); //Считывание первой строки с клавиатуры
cin.get();
cin.get(st2, 256); //Считывание второй строки с клавиатуры
stroka title(st); //Объявление переменной типа нашего класса и передача в конструктор первой строки
title + " "; //С помощью перегрузки операторов добавили к строке пробел
title + st2; //C помощью перегрузки операторов добавили к строке вторую строку
title.show_stroka(); //Отобразили результирующую строку на экране
title - 'b'; //При помощи перегрузки операторов пытаемся удалить символ в
title.show_stroka(); //Отобразили результирующую строку
return 0;
}