Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/5: Рейтинг темы: голосов - 5, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.06.2018
Сообщений: 3
1

Класс "Текст" (массив строк) для ограниченного числа строк

18.06.2018, 11:23. Показов 1023. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, мне задали лабораторную и я вообще не представляю как это делается, помогите пожалуйста:

Свойства:
-Размер(максимальное колво строк)
-Текущее колво строк
-Память(массив указателей на строки)

Методы:
-Ктор по-умолч задает размер 10
-Ктор с параметром - задает необходимый начальный размер
-Деструктор - освобождение памяти
-Размер(максимальное колво строк)
-Текущее колво строк
-Добавление новой строки в конец текста
-Изъятие строки с заданным номером
-Вставка новой строки перед строкой с заданным номером
-Вставка новой строки после строки с заданным номером
-Печать текста

Операции:
[ ] - доступ к строке за номером
+ - добавление новой строки в конец текста
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2018, 11:23
Ответы с готовыми решениями:

Запрос на вывод ограниченного числа строк
добрый день форумчане, нужна помощь с запросом на данный момент мне нужно сделать так что бы при...

Выборка ограниченного числа строк по условию
Привет! Подскажите, кто в курсе. Имеется простая табличка Имя, Город проживания Иван...

Массив строк. проанализировать информацию гостиничного сервиса для n гостиниц. Вволдится массив строк с данными о проживающих в гостинице.....
проанализировать информацию гостиничного сервиса для n гостиниц. Вволдится массив строк с данными о...

Дан массив строк, найти количество строк, которые содержат свою длину в виде числа
Народ очень прошу. Может кто-нибудь написать алгоритм нахождения кол-во строк ? Я знаю, что нужно...

1
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
18.06.2018, 17:22 2
Лучший ответ Сообщение было отмечено sniper232 как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <cstring>
 
class str {
private:
    char** arr;
    size_t cnt;
    size_t num;
public:
    str(void):arr(NULL), cnt(0), num(0){}
    explicit str(size_t max_size):arr(NULL), cnt(0), num(0){
        setSize(max_size);
    }
    ~str(){ clear(); }
public:
    //размер массива
    void setSize(size_t max_size){
        clear();
        arr = new char*[max_size];
        num = max_size;
        cnt = 0;
    }
 
    //вставка в произвольное место
    void insert(size_t index, const char* s){
        if(cnt >= num)
            return;
 
        size_t n = std::strlen(s);
        char*  p = new char[n + 1];
        std::strncpy(p, s, n + 1);
 
        if(index >= cnt)
            arr[cnt++] = p;
        else {
            for(size_t i = cnt++; i > index; --i)
                arr[i] = arr[i - 1];
            arr[index] = p;
        }
    }
 
    //удаление всех
    void removeAll(void){
        for(size_t i = 0; i < cnt; ++i)
            delete[] arr[i];
        cnt = 0;
    }
 
    //удаление памяти
    void clear(void){
        removeAll();
        if(arr != NULL)
            delete[] arr;
        arr = NULL;
        cnt = num = 0;
    }
 
    const char* operator [] (size_t index) const { 
        return arr[index]; 
    }
 
    str& operator + (const char* s){
        insert(cnt, s);
        return *this;
    }
 
    size_t size(void) const { return cnt; }
};
 
int main(void){
    str s(10);
    s + "Lisp" + "Snobol" + "Pascal" + "JAVA" + "C/C++" + "APL" + "PHP";
 
    s.insert(0, "Python");
    s.insert(1, "Go");
    s.insert(s.size()/2, "Haskell");
 
    for(size_t i = 0; i < s.size(); ++i)
        std::cout << s[i] << std::endl;
    s.clear();
    std::cin.get();
    return 0;
}
0
18.06.2018, 17:22
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2018, 17:22
Помогаю со студенческими работами здесь

Класс с текстом, символом и методом, возвращающим текст разбитый символом на массив строк
Напишите программу с классом, в котором есть текстовое поле и символьное поле. Значение полям...

On Error Resume Next только для ограниченного набора строк
Есть макрос, который сталкивается со множеством неожиданностей, и выбрасывает ошибки тут и там. От...

Для заданных трех строк S1, S2 и S3 определить какая из этих строк является десятичной записью числа, кратного 4
Для заданных трех строк S1, S2 и S3 определить какая из этих строк является десятичной записью...

Массив из строк. 1) Подсчитать количество одинаковых строк. 2) Реверс строк
Необходимо 1) Определить число одинаковых слов. 2) Сформировать второй массив, в котором порядок...

Строка: Добавить в строковый класс функцию, которая создает строку, содержащую пересечение двух строк, то есть общие символы для двух строк.
Добавить в строковый класс функцию, которая создает строку, содержащую пересечение двух строк, то...

Класс строк и производный от него класс строк из цифр
Конструктор копирования и оператор присваивания. Перегрузка операций Создать класс строк и...

Для матрицы из 6 строк и 5 столбцов отпечатать номера тех строк, сумма элементов которых кратна заданной величине, и число таких строк.
Для матрицы из 6 строк и 5 столбцов отпечатать номера тех строк, сумма элементов которых кратна...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru