Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <stdexcept>
- using namespace std;
- // Клас String для роботи з рядком
- class String {
- private:
- string str;
- public:
- // Конструктор за замовчуванням
- String() : str("") {}
- // Конструктор з параметрами
- String(const string& s) : str(s) {}
- // Конструктор копіювання
- String(const String& other) : str(other.str) {}
- // Деструктор
- ~String() {}
- // Вставлення символу у рядок
- void insertChar(char c, size_t position) {
- if (position > str.size()) {
- throw out_of_range("Position is out of range.");
- }
- str.insert(position, 1, c);
- }
- // Очищення рядка
- void clear() {
- str.clear();
- }
- // Видалення символу з рядка
- void removeChar(size_t position) {
- if (position >= str.size()) {
- throw out_of_range("Position is out of range.");
- }
- str.erase(position, 1);
- }
- // Вставлення рядка у задане місце
- void insertString(const string& s, size_t position) {
- if (position > str.size()) {
- throw out_of_range("Position is out of range.");
- }
- str.insert(position, s);
- }
- // Пошук підрядка у рядку
- size_t findSubstring(const string& sub) const {
- return str.find(sub);
- }
- // Виведення рядка
- void display() const {
- cout << str;
- }
- };
- // Клас Text для роботи з колекцією рядків
- class Text {
- private:
- vector<String> lines; // Список рядків
- public:
- // Конструктор за замовчуванням
- Text() {}
- // Деструктор
- ~Text() {}
- // Додавання рядка до тексту
- void addLine(const String& line) {
- lines.push_back(line);
- }
- // Очищення тексту
- void clearText() {
- lines.clear();
- }
- // Виведення всього тексту
- void displayText() const {
- for (size_t i = 0; i < lines.size(); ++i) {
- cout << i + 1 << ": ";
- lines[i].display();
- cout << endl;
- }
- }
- // Пошук підрядка у тексті
- void searchInText(const string& sub) const {
- bool found = false;
- for (size_t i = 0; i < lines.size(); ++i) {
- if (lines[i].findSubstring(sub) != string::npos) {
- cout << "Знайдено у рядку " << i + 1 << ": ";
- lines[i].display();
- cout << endl;
- found = true;
- }
- }
- if (!found) {
- cout << "Підрядок не знайдено у тексті." << endl;
- }
- }
- };
- // Основна програма
- int main() {
- // Створення об'єктів класу String
- String line1("Hello, world!");
- String line2("Welcome to the programming world.");
- String line3("C++ is powerful.");
- // Створення об'єкта класу Text
- Text text;
- // Додавання рядків до тексту
- text.addLine(line1);
- text.addLine(line2);
- text.addLine(line3);
- // Виведення тексту
- cout << "Текст:\n";
- text.displayText();
- cout << endl;
- // Вставлення символу у рядок
- line1.insertChar('!', 5);
- cout << "Після вставлення символу:\n";
- line1.display();
- cout << endl;
- // Видалення символу з рядка
- line1.removeChar(5);
- cout << "Після видалення символу:\n";
- line1.display();
- cout << endl;
- // Вставлення рядка у задане місце
- line2.insertString(" amazing", 8);
- cout << "Після вставлення рядка:\n";
- line2.display();
- cout << endl;
- // Пошук підрядка у тексті
- string substring = "world";
- cout << "Пошук підрядка \"" << substring << "\" у тексті:\n";
- text.searchInText(substring);
- // Очищення тексту
- text.clearText();
- cout << "Текст очищено." << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement