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

Совмещение текстов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ матрицы!!! http://www.cyberforum.ru/cpp-beginners/thread512294.html
В матрице A действительных чисел, в каждой строке, поменять местами max и min элементы. если можно на turbo c
C++ Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции, с которой вторая строка содержится в первой. Ввести две символьных строки. Выполнить поиск второй строки в первой и вывести номер позиции, с которой вторая строка содержится в первой. надо на turbo c.. http://www.cyberforum.ru/cpp-beginners/thread512291.html
Не работает с русским языком C++
Может кто-нибудь сказать, почему это #include "stdafx.h" #include <iostream> #include <list> #include <algorithm> #include <iterator> #include <fstream> #include <string> #include <map>
C++ Задача со строками
1.Написать программу для кодирования строки символов методом перестановки.Сменить местами каждый четвертый елемент с шестым в строке, которая разделена на цепочки с 7 символов. 2.Написать программу декодирования.
C++ Сортировка номеров машин с записью в файл http://www.cyberforum.ru/cpp-beginners/thread512269.html
Задание было такое: Составить программу, определяющую вид регистрационного номера автомобиля. Номер может быть обычным, специальным и не соответствующим правилам. Обычный номер начинается двумя или тремя цифрами, после которых следуют три больших латинских буквы. Например: «367ARZ», «82ZBG». Специальные номера имеют длину до 9 знаков, номер должен заканчиваться хотя бы одной цифрой,...
C++ Найти минимальное расстояние между точками этих множеств и сами точки Даны множества A и B, состоящие соответственно из N1 и N2 точек (точки заданы своими координатами x, y). Найти минимальное расстояние между точками этих множеств и сами точки, расположенные на этом рас-стоянии (вначале выводится точка из множества A, затем точка из множе-ства B). подробнее

Показать сообщение отдельно
Kate_
0 / 0 / 0
Регистрация: 26.02.2012
Сообщений: 43

Совмещение текстов - C++

04.03.2012, 19:31. Просмотров 503. Ответов 3
Метки (Все метки)

Здравствуйте, у меня есть класс строк и класс текст.
надо 1 текст сложить с другим( в программе уже 1 текст имеется)
программа работает вот только надо перегрузить операцию +, чтобы класс не выдавал ошибку.

Класс Строк
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
#include <iostream>
#include <string>
using namespace std;
 
class Row {
    char *str;
 
public:
    Row();
    Row( const Row& s); 
    Row(const string);
    ~Row();
    const char* GetRow ();
 
Row& operator +(const Row& s); 
 
    void get();
    void put();
    void putchar(int, char);
    void delchar(int);
    void clearstr();
    char array[256];
};
 
/*Конструктор по умолчанию*/
Row::Row() 
{str = new char[80];}
 
 
/* Деструктор */
Row::~Row(){
if(str!=NULL)
delete[] str;
str=NULL;
}
 
/*конструктор с параметрами*/
Row::Row(const string a) {
    this->str = new char[a.length()];
    for (int i = 0; i < a.length(); i++)
        str[i] = a[i];
    for (int j = a.length(); j < 80; j++) 
        str[j] = '\0';}
 
/*конструктор копирования*/
Row::Row(const Row &str){ 
this->str = new char[80];
    for(int i = 0; i < 80; i++) {
        this ->str[i] = str.str[i];}
}
 
void Row::get() {
    cout << "\t";
    gets(str);
}
 
void Row::put() {
    puts(str);
}
 
 
void Row::putchar(int i, char z) {
    for(int j = 78; j > i-2; j--) {
        str[j+1] = str[j];
    }
    str[i-1] = z;
}
 
 
void Row::delchar(int i) {
    for(int j = i - 1; j < 80; j++) {
        str[j] = str[j+1];
    }
}
 
 
void Row::clearstr() {
    for (int i = 0; i < 80; i++) {
        str[i] = '\0';
    }
}
 
Row& Row::operator +(const Row& s)
{
 
 
}
вот класс текст
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
using namespace std;
 
class Text {
     Row *text;
     int nums;
public:
     Text();
     Text(int);
     void add(const Row&);
     void print();
     void delstring(int);
};
 
 
/*конструктор по умолчанию*/
Text::Text() {
this->  text = new Row[1];
    nums = 0;
}
 
 
/*конструктор с параметрами */
Text::Text(int stramount) {
this ->text = new Row[stramount];
    nums = 0;
}
 
 
void Text::add(const Row& string) {
    text[nums] = string;
    nums++;
}
 
 
void Text::print() {
    for(int i = 0; i < nums; i++) {
        cout << "\t";
        text[i].put();
    }
}
 
 
void Text::delstring(int n) {
    for(int i = n - 1; i < nums - 1; i++) {
        text[i] = text[i+1];
    }
    text[nums - 1].~Row();
    nums--;
}
и вот функция мейн
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
#include <iostream>
#include <cstring>
#include <cstdio>
#include "strings.h"
#include "text.h"
 
using namespace std;
 
int main() {
    Text t1(3);
    Row str1, str2, str3,str4;
    setlocale(LC_CTYPE,"Russian");
    cout << "Введiть текст ";
    str1.get();
    t1.add(str1);
    str2.get();
    t1.add(str2);
    str3.get();
    t1.add(str3);
    cout << "Текст 1: "<<endl;;
    t1.print();
    
    /*вставка символа в рядок*/
    str1.putchar(5, 'D');
    cout << "Текст 2 \n: ";
    t1.print();
 
    /*видалення символа з рядка*/
    str1.delchar(5);
    cout << "Текст 3: \n "<<endl;
    t1.print();
 
    /*видалення рядка*/
    //t1.delstring(2);
    //cout << "Text 4: \n";
    //t1.print();
 
    /*очищення рядка*/
    str2.clearstr();
    cout << "Tекст 4 \n: "<<endl;
    t1.print();
 
cin.get();
    cin.get();
    return 0;
}
Ребята код работает, только надо написать 1 функцию по перегрузке операции! Буду очень благодарная.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru