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

Ошибка вывода строки на экран - C++

Восстановить пароль Регистрация
 
OlegPL
5 / 5 / 0
Регистрация: 22.10.2013
Сообщений: 100
13.12.2013, 00:55     Ошибка вывода строки на экран #1
Подскажите пожалуйста в чем ошибка, задача была в том что бы создать строку которую хранит в себе пересечение двух других. Так же выслушал бы советы по коду...

Файл my_string.h :
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
#ifndef _MY_STRING
#define _MY_STRING
 
class my_string
{
private:
    char *_str;
public:
 
    my_string();
    
    my_string(char *str);
    
    my_string(int size);
 
    my_string(const my_string &tmp);
 
    my_string get_concat(my_string x);
 
    void show();
 
    my_string get_count_and_str(my_string first, my_string second);
 
    ~my_string();
};
 
#endif
Файл my_string.cpp :
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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include "my_string.h"
 
using std::cout;
using std::endl;
 
my_string::my_string()
{
    this->_str = nullptr;
}
 
my_string::my_string(char *str)
{
    if(!_str)
        delete [] _str;
    this->_str = new char[strlen(str) + 1];
    strcpy(this->_str, str);
}
 
my_string::my_string(int size)
{
    if(!_str)
        delete [] _str;
    this->_str = new char[size];
}
 
my_string::my_string(const my_string &tmp)
{
    if(!_str)
        delete [] _str;
    _str = new char[strlen(tmp._str)];
    strcpy(_str, tmp._str);
}
 
my_string my_string::get_concat(my_string x)
{
    if(!_str)
        delete [] _str;
    char* tmp = new char[strlen(x._str) + strlen(_str) + 1];
    strcpy(tmp, _str);
    strcat(tmp, " ");
    strcat(tmp, x._str);
    return tmp;
}
 
void my_string::show()
{
    cout << _str << endl;
}
 
my_string::~my_string()
{
    if(!_str)
        delete [] _str;
}
 
my_string my_string::get_count_and_str(my_string first, my_string second)
{
    int counter = 0;
    bool flag = false;
    for(int i = 0; i < strlen(first._str); i++)
    {
        for(int j = 0; j < strlen(second._str); j++)
        {
            if(first._str[i] == second._str[j])
            {
                if(!flag)
                {
                    counter++;
                    flag = true;
                }
            }           
        }
        flag = false;
    }
 
    my_string tmp(counter);
    int tmp_count = 0;
    if(!tmp._str)
        delete [] tmp._str;
    _str = new char[counter];
    for(int i = 0; i < strlen(first._str); i++)
    {
        for(int j = 0; j < strlen(second._str); j++)
        {
            if(first._str[i] == second._str[j])
            {
                if(!flag)
                {
                    tmp._str[tmp_count] = first._str[i];
                    tmp_count++;
                    flag = true;
                }
            }           
        }
        flag = false;
    }
    
    return tmp;
}
Файл main.cpp :
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include "my_string.h"
 
using std::cout;
using std::endl;
 
int main ()
{
    my_string first("sdqcg"), second("rgfas34"), third;
 
    /*third = first.get_concat(second);
    third.show();*/
 
    third = third.get_count_and_str(first, second);
    third.show();
 
    return 0;
}
Миниатюры
Ошибка вывода строки на экран  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2013, 00:55     Ошибка вывода строки на экран
Посмотрите здесь:

вывода информции на экран в С++ C++
Не компилируется программа вывода текста на экран C++
C++ Странный порядок вывода сообщений на экран
C++ Написать функции 1 вывода массива на экран
C++ Способ вывода данных на экран
C++ Краш во время вывода списка на экран
C++ Ошибка вывода текста на экран
Функция вывода на экран данных C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
13.12.2013, 01:37     Ошибка вывода строки на экран #2
Правило трёх

Добавлено через 10 минут
С данными в коде строками, пересечение как должно выглядеть?
Yandex
Объявления
13.12.2013, 01:37     Ошибка вывода строки на экран
Ответ Создать тему
Опции темы

Текущее время: 18:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru