Форум программистов, компьютерный форум CyberForum.ru

Разработать класс String, который в дальнейшем будет использоваться для работы со строками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ одномерный массив http://www.cyberforum.ru/cpp-beginners/thread1549704.html
В одномерном массиве размещены: в первых элементах-значения аргумента, в следующих-соответствующие им значения функции. Напечатать элементы этого массива в виде двух параллельных столбцов (аргумент и значение функции)
C++ Лямбда-выражение и поиск значения в векторе Необходимо реализовать простенькую программку поиска значения в векторе. Но сделать это нужно с помощью лямбда-выражения. Как? #include "stdafx.h" using namespace std; int main() { http://www.cyberforum.ru/cpp-beginners/thread1549702.html
Как указать числа в коде? C++
Есть линейный алгоритм с переменными.Типы исходных данных p,q вводятся с клавиатуры p-целое q-действительное.Как мне это указать в коде? #include <iostream> #include <math.h> #include <conio.h> #include <stdio.h> using namespace std; int main() { setlocale(LC_ALL, "Russian"); float p, q, n, m, k; cout << "Введите P \n";
Найти произведение: P = 1.1 · 1.2 · 1.3 · 1.4.... C++
Дано натуральное число N. Найти произведение: P = 1.1 · 1.2 · 1.3 · 1.4 · ... (произведение вклчает в себя N сомножителей) . Посчитать в цикле
C++ Использование хэшсета в задаче выбора всех попарно различных элементов массива http://www.cyberforum.ru/cpp-beginners/thread1549684.html
Можно пример использования хэшсета в задачи выбора всех попарно различных элементов массива ? Т.е. чтоб небыло одиннаковых. Я читал, что для таких задач используют хэш - таблицы. Как это делать?
C++ Прокси в программе Мне нужно использовать прокси в программе.. Как это можно реализовать в VS? подробнее

Показать сообщение отдельно
Виталя97
2 / 2 / 2
Регистрация: 04.05.2015
Сообщений: 93

Разработать класс String, который в дальнейшем будет использоваться для работы со строками - C++

11.10.2015, 19:09. Просмотров 689. Ответов 9
Метки (Все метки)

Всем доброго времени суток!

Вот задание:

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

- конструктор по умолчанию, позволяющий создать строку длиной 80 символов;
- конструктор, позволяющий создавать строку произвольного размера;
- конструктор, который создаёт строку и инициализирует её строкой, полученной от пользователя;
- конструктор копирования.

+ код так как я начал делать:

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
#include <iostream>
#include <string>
using namespace std;
 
class string_                                                               
{
private:
    char *strings;                                                              
    int len;                                                            
public:
    string_()                                                           
    {
        len = 81;                                                       
        strings = new char[len];
        strcpy(strings, strings);
    }
    string_(int len)                                                    
    {
        strings = new char[len + 1];
        strcpy(strings, strings);
    }
    string_(const char* string)                                             
    {
        strings = new char[strlen(strings) + 1];
        strcpy(strings, string);
    }
    string_(const string_ &news)                                            
    {
        strings = new char[strlen(strings) + 1];
        strcpy(strings, news.strings);
    }
    ~string_()                                                          
    {
        delete[] strings;
    }   
 
    string_& operator + (const string_& right)
    {
        string_ result(strcat(strings, right.strings));
        return *this;
    }
 
    friend istream& operator >> (istream& stream, string_& orig);
    friend ostream& operator << (ostream& stream, const string_& orig);
};
 
istream& operator >> (istream& stream, string_& orig)
{
    stream >> orig.strings;
    return stream;
}
 
ostream& operator << (ostream& stream, const string_& orig)
{
    stream << orig.strings;
    return stream;
}
 
int main()
{
    string_ string1, string2(80);                                                   
    
    cout << "Enter string 1: ";
    cin >> string1;
 
    cout << "Enter string 2: ";
    cin >> string2;
 
    cout << string1 << " + " << string2;
    string1 + string2;
    cout << " = " << string1 << endl; 
 
    return 0;
}
Такая проблема, когда я ввожу две строки по 80 символов выбивает ошибку.

Я понимаю что strcat записывает результат складывания двух строк в первую строку, где у меня эта строка на 80 символов, а при складывании строк она должна равняться 160 символов.

Как это сделать чтобы оно нормально складывало строки?

Исправьте пожалуйста код так как нужно. Буду вам очень благодарен.

Добавлено через 2 часа 40 минут
Помогите.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru