fork(1) download
  1. #include <stdlib.h>
  2. #include <iostream>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6. //СОЗДАЕМ СОБСТВЕННЫЙ КЛАСС
  7. class stroka
  8. {
  9. public:
  10. stroka (char*); //конструктор класса принимающий один параметр
  11. void operator+(char const*); //определение оператора +
  12. void operator-(char); //определение оператора -
  13. void show_stroka(void); //метод класса для отображения строки
  14. private:
  15. char data[256]; //символьный массив, доступный только классу
  16. };
  17.  
  18. stroka::stroka(char *str) //Транзитом через конструктор
  19. {
  20. strcpy(data, str); //копируем в символьный массив класса данные из принимаемой извне строки
  21. }
  22.  
  23. void stroka::operator+(char const* str) //Определяем оператор +
  24. {
  25. strcat(data, str); //как функцию сложения двух строк
  26. }
  27.  
  28. void stroka::operator-(char letter)//Определяем оператор -
  29. {
  30. char temp[256]; // будем создавать новую строку
  31. int i, j; //счетчики циклов
  32. //Проходим по всей строке класса с помощью цикла и если символ строки не равен принятому символу (параметру), то копируем его в новую строку
  33. for (i = 0, j = 0; data[i]; ++i) if (data[i] != letter) temp[j++] = data[i];
  34. temp[j] = '\0';
  35. strcpy(data, temp); //Копируем новую строку в символьный массив класса
  36. }
  37. void stroka::show_stroka(void)
  38. {
  39. cout << data << endl; //Показываем символьный массив класса
  40. }
  41.  
  42. int main()
  43. {
  44.  
  45. char st[256], st2[256]; //Объявление двух указателей для строк
  46. cin.get(st, 256); //Считывание первой строки с клавиатуры
  47. cin.get();
  48. cin.get(st2, 256); //Считывание второй строки с клавиатуры
  49. stroka title(st); //Объявление переменной типа нашего класса и передача в конструктор первой строки
  50. title + " "; //С помощью перегрузки операторов добавили к строке пробел
  51. title + st2; //C помощью перегрузки операторов добавили к строке вторую строку
  52. title.show_stroka(); //Отобразили результирующую строку на экране
  53. title - 'b'; //При помощи перегрузки операторов пытаемся удалить символ в
  54. title.show_stroka(); //Отобразили результирующую строку
  55.  
  56. return 0;
  57. }
Success #stdin #stdout 0s 3344KB
stdin
Standard input is empty
stdout