Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Integrator30
0 / 0 / 0
Регистрация: 07.02.2017
Сообщений: 1
1

Создать копию исходного файла с удаленной из него последовательностью букв

07.02.2017, 23:35. Просмотров 164. Ответов 3
Метки c++ (Все метки)

В исходном файле достаточно большое количество строк, содержащих бессвязный набор слов. Из него надо удалить последовательность букв "pass". (как отдельно стоящее слово, так и внутри других слов).

Подскажите, как это выполнить, желательно самыми базовыми командами (без использования erase, например).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2017, 23:35
Ответы с готовыми решениями:

Создать массив из элементов исходного файла, внеся в него числа, превосходящие среднее значение
Создать двоичный файл, куда записать n вещественных чисел. Создать массив из...

Получить копию исходного файла f в файле g
Дан символьный файл f. Получить копию в файле g

Создать полную копию исходного дерева и проверить узел
У меня есть дерево выражения(двоичное дерево). По алгоритму происходит...

Создать файл F1, записать в него N чисел, а затем создать его копию - файл F2
Вроде есть все условия, но последние числа перезаписывает: #include...

Создать два файла, первый содержит элементы исходного файла с нечетными номерами, а второй с четными
1.) Дан файл вещественных чисел разделенных одним пробелом. Создать два новых...

3
gazlan
3141 / 1917 / 311
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
08.02.2017, 01:30 2
Читать и писать посимвольно. Если текущий символ 'p', а три следующих 'ass', пропустить запись всех четырех. Продолжать до конца файла.
0
no swear
166 / 144 / 76
Регистрация: 01.07.2016
Сообщений: 802
Завершенные тесты: 1
08.02.2017, 14:48 3
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
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    ifstream fin("c:\input.txt");
    string s,sn;
    while(getline(fin,s))
    {
        if(s.length()<=3)
        {
            cout<<s;
        }
        else
        {
        sn="";
        int lens=s.length();
        int i=0;
        while(i<lens)
        {
            if(s[i]=='p')
            {
                if(s[i+1]=='a' && s[i+2]=='s' && s[i+3]=='s')
                {
                    i=i+4;
                }
                else
                {
                  sn=sn+s[i];
                  i++;
                }
            }
            else
            {
                sn=sn+s[i];
                i++;
            }
        }
        cout<<sn<<endl;
        }
    }
}
Добавлено через 14 минут
Теперь всё чётко работает
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
#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    ifstream fin("c:\input.txt");
    string s,sn;
    while(getline(fin,s))
    {
        if(s.length()<=3)
        {
            cout<<s;
        }
        else
        {
        sn="";
        int lens=s.length();
        int i=0;
        while(i<lens)
        {
            if(s[i]=='p')
            {
                if(s[i+1]=='a' && s[i+2]=='s' && s[i+3]=='s')
                {
                    i=i+4;
                }
                else
                {
                  sn=sn+s[i];
                  i++;
                }
            }
            else
            {
                sn=sn+s[i];
                i++;
            }
        }
        cout<<sn<<endl;
        }
    }
}
0
Peoples
1354 / 842 / 750
Регистрация: 06.02.2016
Сообщений: 2,246
Записей в блоге: 18
Завершенные тесты: 4
08.02.2017, 15:24 4
Если с erase кому понадобится
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <fstream>
#include <algorithm>
#include <string>
#include <iterator>
using namespace std;
int main() {
    ifstream ff("tr.txt");
    ofstream fd("tt.txt");
    transform(istream_iterator<string>(ff),istream_iterator<string>(),ostream_iterator<string>(fd," "),[](const string &s) {
        string str=s;
        if(s.find("pass")!=string::npos) {
            str.erase(s.find("pass"),4);
        }
        if(!str.empty()) {
            return str;
        }
    });
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2017, 15:24

Создать файл из четных чисел исходного файла
Программа открывает текстовый файл, который содержит некоторое количество целых...

Найти слова с заданной последовательностью букв - указатели
Найдите слова с заданной последовательностью букв. Напечатать весь исходный...

Создать новый файл, содержащий элементы исходного файла в обратном порядке
Дан файл целых чисел. Создать новый файл, содержащий те же элемен-ты, что и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru