Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2015, 17:13   #1
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
Сообщение Разработать класс String, который в дальнейшем будет использоваться для работы со строками - C++

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

Вот задание:

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

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

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

Код:
#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 символов.

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

Исправьте пожалуйста код так как нужно. Буду вам очень благодарен.
Андрей Иванов вне форума Ответить с цитированием
Старый 11.10.2015, 17:29   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
выбивает ошибку.
Ну что, партизанен, как будем тебя пытайтен? Бочкен вареньен одер пачкен печенькен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2015, 18:51   #3
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
Сообщение

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну что, партизанен, как будем тебя пытайтен? Бочкен вареньен одер пачкен печенькен?
Вы можете исправить мой код, чтобы он правильно работал?
Андрей Иванов вне форума Ответить с цитированием
Старый 11.10.2015, 20:29   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Конечно же нет.
Сам догадаешься почему или подсказать?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.10.2015, 21:48   #5
Андрей Иванов
Пользователь
 
Регистрация: 13.04.2015
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Сам догадаешься почему или подсказать?
Подсказать.
Андрей Иванов вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать класс string для работы со строками с# wordast Общие вопросы C/C++ 1 16.12.2013 05:26
разработать класс для работы с матрицами 2х2 doter Visual C++ 0 13.05.2011 20:38
Метод для класса который будет работать с будующим экземпляром SunKnight Общие вопросы .NET 7 12.05.2009 20:25
создать типизированный файл который будет использоваться в Методе Гаусса vdv08 Помощь студентам 5 23.10.2008 15:17