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

Добавить счетчик количества произведенных замен текста в программу - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Инициализация указателя с malloc ? http://www.cyberforum.ru/cpp-beginners/thread1212002.html
Я тут прочитал про malloc, верно ли я понял? Есть: char* pszBuffer; Выходит лучше сделать так? char* pszBuffer = static_cast< char* >( malloc( 16 * sizeof( char* ) ) ); //Работа над ним..
C++ Не создается указатель из-за базового класса с конструктором class Cbase { public: virtual void Start( ); int iGlobal; Cbase( int num ) { iGlobal = num ; http://www.cyberforum.ru/cpp-beginners/thread1211997.html
Законно ли использовать указатель wchar_t таким образом? C++
Всем привет! Меня мучает вопрос: wchar_t* wstr; wstr = L"TROLOLOLOOMGPWNDALL"; У меня выделяется нужное кол-во памяти под эту строку, или же я залезаю за пределы дозволенного? Просто часто бывает лень для каждой строки писать new wchar_t, поэтому, замучил вопрос о законности и правильности вышеописанного кода... Буду благодарен за ответ =)))
Что делает метод cin.ignore? C++
cin.ignore(0,'\n'); Что она делает?
C++ Создать односвязный линейный список, элементами которого являются натуральные числа http://www.cyberforum.ru/cpp-beginners/thread1211942.html
создать односвязный линейный список, элементами которого ясвляются натуральные числа. Напечатать значения елементов, росположенных между максимальными и миннимальными елементами списка/ С++
C++ Как узнать тип производного класса в функции базового Всем привет! Есть иерархия классов: class1 -> class2->class3 class2->class4 class2->class5 Где стрелочки - наследование. Я создаю class3, class4, class5, в каждом из них есть экземпляры классов class2 и class1. В классе class2 есть функция, которая должна отработать в зависимости от того, в каком из производных классов она была создана. Как мне узнать, на... подробнее

Показать сообщение отдельно
Phoenix_zsd
0 / 0 / 0
Регистрация: 15.04.2014
Сообщений: 18
19.06.2014, 07:28     Добавить счетчик количества произведенных замен текста в программу
помогите пожалуйста! имеется программа, ищущая заметы в тексте. Текст и список замен берутся из отдельных файлов. на защите программы препод сказал сделать, что бы исходная заменяемая подстрока и ее замена выводились на консоль и посчитать число раз, сколько раз замена применялась. помогите сделать этот счетчик, который считает количество раз использования замены
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
#include <conio.h>
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
#pragma hdrstop
#pragma argsused
 
 
int main() {
 
    string line;
    std::ifstream repls_file("replaces.txt");
    vector< pair< string, string > > repls;
    while (getline(repls_file, line)) {
        unsigned pos = line.find(';');
        if (pos == string::npos) {
            cout << "Error: Incorrect file with replaces." << endl;
            return 0;
        }
 
 
 
        repls.push_back(make_pair(
                line.substr(0, pos), line.substr(pos + 1)));
    }
    repls_file.close();
 
 
 
    std::ifstream input_file("input.txt");
 
    std::ofstream output_file("output.txt");
    while (getline(input_file, line)) {
 
        string new_line;
 
        for (unsigned i = 0; i < line.length(); i++) {
 
            bool replaced = false;
            for (unsigned j = 0; j < repls.size(); j++) {
 
                string &old_frag = repls[j].first;
 
 
                if (line.length() - i < old_frag.length())
                    continue;
 
 
                bool is_matches = true;
                for (unsigned k = 0; k < old_frag.length(); k++)
                    if (line[i + k] != old_frag[k]) {
 
                        is_matches = false;
                        break;
 
                    }
                {
                for (int counter = 0; counter <n; counter++)
                if (is_matches) {
                    new_line += repls[j].second;
 
                    i += old_frag.length() - 1;
                    replaced = true;
                    //cout<< new_line <<""<<endl;
                    cout<<old_frag<<'-'<< repls[j].second  <<endl;
 
                    cout<<" "<< counter<<endl;
                    break;
 
 
 
 
 
 
                }
                }
            }
 
 
            if (!replaced)
                new_line += line[i];
        }
 
        output_file << new_line << endl;
 
    }
 
 
    output_file.close();
    input_file.close();
    getch();
    return 0;
}
Добавлено через 7 минут
я начал, но не получается
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 20:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru