Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
29 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231

Сложение двух string методом перегрузки и помещение в поток

08.01.2017, 14:49. Показов 1584. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Собственный класс Stroka, представляющий строки символов из таблицы ASCII, с перегруженными операциями конкатенации двух строк и помещения в поток
Задача-то, собственно сделана, но не так, как сказано в условии.

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
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <vector>
#include <sstream>
#include <strstream>
#include <string>
#include <algorithm>
using namespace std;
 
 
class stroka
{
    string m_str;
 
public:
 
    stroka(const char* src) : m_str(src) {};
    stroka(const stroka& src) : m_str(src.m_str) {};
 
public:
    const stroka& operator++()
    {
        transform(m_str.begin(),m_str.end(),m_str.begin(),tolower);
        return *this;
    }
 
    const stroka& operator++(int)
    {
        return this->operator++();
    }
 
    friend ostream& operator<<(ostream& out,const stroka& str)
    {
        return out << str.m_str;
    }
//сложение строк без перегрузки + (Работает)
    /*void add(const stroka &second)
    {
        m_str += second.m_str;
    }
*/
    void print()
    {
        cout << m_str;
    }
//(Сложение строк с помощью перегрузки "+", не работает) 
//Вот тут-то меня и настигла неизвестность.
    friend stroka& operator+(const stroka& str1, const stroka& str2) 
    {
        stroka result(stroka& str1);
        result = strcat(str1.m_str, str2.m_str);
        return result;
    }
 
};
int main()
{
    char line[256];
    cout << "Enter line, 255 chars max!" << endl;
    cin.getline(line,255);
    stroka str(line);
    cout << "To lower (operator++) : " << (str++) << endl;
    char line2[256]; 
    cout << "Enter line, 255 chars max!" << endl;
    cin.getline(line2,255); 
    stroka str2(line2);
    str.add(str2); //(Сложение строк без +, работает)
    str= str+str2;//(Сложение строк с помощью перегрузки "+", не работает)
    cout << "str+str2 = ";
    str.print();
    return 0;
}
сделал без потока и конкатенация не работает, можете помочь исправить?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.01.2017, 14:49
Ответы с готовыми решениями:

Функция addarray(): сложение соответствующих элементы двух массивов и помещение результата в третий массив
Напишите функцию с именем addarray(), принимающую два массива в качестве аргументов одинаковой длины. Функция должна складывать...

Сложение двух чисел, имеющих тип string
Итак, нужно сложить два числа, например a+b. Но загвоздка в том, что они должны иметь тип string. Нужно написать такую программу, чтобы она...

Сложение двух чисел, имеющих тип string
Итак, нужно сложить два числа, например a+b. Но загвоздка в том, что они должны иметь тип string. Нужно написать такую программу, чтобы она...

22
1272 / 1029 / 470
Регистрация: 25.12.2016
Сообщений: 3,333
08.01.2017, 16:55
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от artem55555p Посмотреть сообщение
Вопрос, как это сделать
Так я же написал: Сложение двух string методом перегрузки и помещение в поток
0
29 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
09.01.2017, 10:06  [ТС]
Так я и не понял, как это сделать, можете помочь, объяснить?

Добавлено через 14 часов 45 минут
вы можете показать как и объяснить?
0
29 / 0 / 0
Регистрация: 27.02.2015
Сообщений: 231
10.01.2017, 16:08  [ТС]
вы тут?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2017, 16:08

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

Выполнить объединение двух строк с помощью перегрузки оператора (*)
#define _CRT_SECURE_NO_WARNINGS #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; class String { char *str; int...

Конкатенация двух нибблов (сложение двух полубайт в байт)
Как из этих двух полубайт получить полноценный байт со значение &quot;0x3e&quot;? unsigned char first_nibbl = 0x03 unsigned char last_nibbl =...

Как можно обрабатывать разные типы одним и тем же методом кроме перегрузки
Здраствуйте, интересует такой вопрос. Есть классы A,B,C. Класс С принимает внутри себя классы A и B методом GetClass class a ...

Open Watcom нет перегрузки для оператора ввода для типа std::string
Решил использовать компилятор Open Watcom C++ и в результате не компилируется проект. Проект прилагается


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru