Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
37 / 21 / 17
Регистрация: 13.04.2016
Сообщений: 106
1

Реализовать класс для работы со строками

21.03.2017, 10:24. Показов 3952. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Пожалуйста помогите с заданием

Необходимо реализовать класс TString. В процессе выполнения задания нельзя пользоваться классом std::string и подобными ему, а так же функциями работы со строками из языка СИ (strlen, strcpy, strcat и др.). Класс должен содержать следующие методы:

Конструктор по умолчанию
Конструктор копирования
Оператор присваивания
Пользовательский конструктор, принимающий char *
Оператор + и +=, который реализует конкатенацию двух строк
Оператор ==, !=, <, >
Метод Find
Метод Replace
Метод Size
Оператор []
Метод Empty
RTrim, LTrim
Оператор вывода

Объявление класса:
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
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#include <iostream>
class TString
{
    char * Data;
public:
    /// <summary> Деструктор </summary> 
    ~TString();
 
 
    /// <summary> Конструктор по умолчанию </summary>  
    TString();
 
 
    /// <summary> Конструктор копирования </summary>  
    /// <param name="rhs">Объект, который копируем </param>  
    TString(const TString& rhs);
 
 
    /// <summary> Пользовательский конструктор </summary>  
    /// <param name="data">Данные, которые требуется поместить в создаваемый объект </param>  
    TString(const char * data);
 
 
    /// <summary> Оператор присваивания </summary>  
    /// <param name="data">Объект, который копируем </param>  
    /// <returns>Возвращаем ссылку на себя</returns>  
    TString& operator =(const TString& rhs);
 
 
    /// <summary> Оператор += </summary>  
    /// <param name="rhs">Объект, который стоит после знака '+=' </param>  
    /// <returns>Возвращаем ссылку на себя</returns>  
    TString& operator +=(const TString& rhs);
 
 
    /// <summary> Оператор == </summary>  
    /// <param name="rhs">Объект, который стоит после знака '==' </param>  
    /// <returns>Возвращаем значения равенства двух строк</returns>  
    bool operator ==(const TString& rhs) const;
 
 
    /// <summary> Оператор &lt; </summary>  
    /// <param name="rhs">Объект, который стоит после знака "&lt;" </param>  
    /// <returns>Возвращаем значения сравнения двух строк</returns>  
    bool operator <(const TString& rhs) const;
 
 
    /// <summary> Функция поиска подстроки</summary>  
    /// <param name="substr">Подстрока, которую необходимо найти </param>  
    /// <returns>Возвращаем позицию substr. Если подстрока не найдена, то возвратить -1</returns> 
    size_t Find(const TString& substr) const;
 
 
    /// <summary> Функция замены букв </summary>  
    /// <param name="oldSymbol">Символ, который требуется заменить </param>  
    /// <param name="newSymbol">Символ, на который требуется заменить </param>
    void Replace(char oldSymbol, char newSymbol);
 
 
    /// <summary> Функция возвращает длину строки </summary>  
    /// <returns>Возвращаем длину строки</returns> 
    size_t Size() const;
 
 
    /// <summary> Функция для определения пуста ли строка </summary>  
    bool Empty() const;
 
 
    /// <summary> Оператор [] </summary> 
    /// <example> 
    /// <code>
    /// TString str = "some string";
    /// char symbol = str[2]; // symbol == 'm'
    /// </code>
    /// </example>
    /// <param name="index"> Индекс символа </param>  
    /// <returns> Значение символа в строке с индексом index</returns> 
    char operator[](size_t index) const;
 
 
    /// <summary> Оператор [] </summary> 
    /// <example> 
    /// <code>
    /// TString str = "some string";
    /// str[0] = 'S'; // теперь переменная str равна "Some string"
    /// </code>
    /// </example>
    /// <param name="index"> Индекс символа </param>  
    /// <returns> Ссылка на символ в строке с индексом index</returns> 
    char& operator[](size_t index);
 
 
    /// <summary> Смотри пример </summary> 
    /// <example> 
    /// <code>
    /// TString str = "___some string___";
    /// str.RTrim('_'); // теперь переменная str равна "___some string"
    /// </code>
    /// </example>
    /// <param name="symbol"> Значение символов, которе отрезаем </param> 
    void RTrim(char symbol);
 
 
    /// <summary> Смотри пример </summary> 
    /// <example> 
    /// <code>
    /// TString str = "___some string___";
    /// str.LTrim('_'); // теперь переменная str равна "some string___"
    /// </code>
    /// </example>
    /// <param name="symbol"> Значение символов, которе отрезаем </param> 
    void LTrim(char symbol);
 
    friend std::ostream & operator<<(std::ostream &, const TString &);
};
 
/// <summary> Оператор +</summary>  
/// <example> 
/// <code>
/// TString a = "Hello";
/// TString b = "World";
/// TString c = a + b; // c равна "HelloWorld"
/// </code>
/// </example>
/// <returns>Возвращаем строку равную a + b</returns>  
TString operator+(const TString & a, const TString & b);
 
 
/// <summary> Оператор !=</summary>
bool operator!=(const TString & a, const TString & b);
 
 
/// <summary> Оператор &gt;</summary>
bool operator>(const TString & a, const TString & b);
 
 
/// <summary> Оператор вывода </summary>  
/// <param name="out">Поток куда выводим строку </param>  
/// <param name="str">Строка, которую выводим </param>
/// <returns>Возвращаем ссылку на поток</returns> 
std::ostream & operator<<(std::ostream &out, const TString &str);
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.03.2017, 10:24
Ответы с готовыми решениями:

Перегрузка операторов. Реализовать класс String для работы со строками символов. Перегрузить операторы «=», «+=»
Реализовать класс String для работы со строками символов. Перегрузить операторы «=», «+=» так,...

Класс для работы со строками CString
Написать текстовый редактор с параметрами 1. Вставка в начало 2. Копирование строк 3. Поиск в...

Создать класс для работы сo строками
Создать класс для работы сo строками. Разработать элементы класса: a. Поля: * указатель на char...

Написать класс для эффективной работы со строками
Написать класс для эффективной работы со строками, что позволяет форматировать и сравнивать строки,...

2
Неэпический
18105 / 10692 / 2062
Регистрация: 27.09.2012
Сообщений: 26,918
Записей в блоге: 1
21.03.2017, 10:59 2
В общем случае, для оформления кода,
выделите код и нажмите на кнопку соответствующего языка (см. изображение)
1
599 / 237 / 69
Регистрация: 08.08.2015
Сообщений: 1,637
21.03.2017, 11:46 3
crazykreis, Так помочь или сделать за вас? Если первое то что именно не работает?
0
21.03.2017, 11:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.03.2017, 11:46
Помогаю со студенческими работами здесь

Разработать класс String для работы со строками
разработать класс String для работы со строками. Класс должен содержать контср по умолчанию,...

Разработать класс String для работы со строками
/*Разработать класс String для работы со строками. Класс должен содержать: - Конструктор по...

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

Написать класс для эффективной работы со строками
Вариант 13 Написать класс для эффективной работы со строками, позволяющий форматировать и...


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

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