С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 336
#1

Доделать код - C++

10.04.2014, 11:34. Просмотров 174. Ответов 5
Метки нет (Все метки)

Программа удаляет из файла определённые символы: "A", "b", "C", "d". Проблема в том, что я не знаю как добавить условия для удаления остальных символов, помимо "А".
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
#include <iostream>
#include <fstream>
 
using namespace std;
 
int main()
{
    int f;
    char s[20];
    char deleted_symbol = 'A', deleted_symbol_1='b';
 
setlocale(LC_ALL, "RUS");
ofstream out;
out.open("out.txt");
 
ifstream file;
file.open("text.txt");
 
for(f=0; !file.eof(); f++)
{
 
file >> s;
 
 
    //Удаление из строки s всех вхождений символа 'A'
    int i = 0;//индекс для исходной строки
    int j = i;//индекс для модифицированной строки
 
    //цикл модификации исходной строки
    while (s[i])//пока в строке не нулевой байт
    {
        //проверить текущий символ строки
        if(s[i] != deleted_symbol)//если s[i] не равен 'a'
 
 
        //переписать текущий символ строки по новому индексу j
        // и  увеличить индекс j единицу
            s[j++] =  s[i];
        // и увеличить индекс i на единицу
            i++;
 
    }
     //запись нулевого байта в конец модифицированной строки
    s[j] = '\0';
    //вывод результата
 
    cout<< s << endl;
 
 
}
out.close();
 
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2014, 11:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Доделать код (C++):

Доделать код - C++
Помогите доделать код, нужно добавить укзатели можете помочь Вот код: # include &lt;windows.h&gt; # include &lt;locale.h&gt; # include...

Нахождение разных типов предложений (доделать код) - C++
Задание: нужно найти все предложения в строке , которые заканчиваются на !.? ( ну вообщем восклицательные, вопросительные, и обычные) Есть...

Доделать код. Тема массивы. Нужно использовать массив для хранения ответа - C++
Дана целочисленная прямоугольная матрица. Определить: 1. количество строк, содержащих хотя бы один нулевой элемент; 2. номер столбца, в...

Доделать код чтобы он искал произведение элементов строки в которой находится максимальный елемент - C++
Как найти произведение элементов строки в которой находится максимальный элемент? #include &lt;iostream&gt; #include &lt;math.h&gt; using...

Нужно доделать код! Исключить из дерева сортировки число "2" - C++
// аисд7.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; /***********...

доделать программу - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;fstream&gt; using namespace std; int main() { setlocale(LC_ALL,&quot;Russian&quot;); fstream...

5
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,009
Завершенные тесты: 1
10.04.2014, 11:38 #2
вместо 33 строки if(s[i] != deleted_symbol)
напишите
C++
1
if(  s[i] !='A' && s[i] !='b' && s[i] !='C' && s[i] !='d'  )
1
Aecttann
6 / 6 / 0
Регистрация: 19.10.2013
Сообщений: 336
10.04.2014, 12:13  [ТС] #3
zss, да, спасибо. А как можно сделать то же самое, но не используя массив?
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
10.04.2014, 12:18 #4
Ни как, строка - уже массив.
0
zss
Модератор
Эксперт С++
6580 / 6142 / 2024
Регистрация: 18.12.2011
Сообщений: 16,009
Завершенные тесты: 1
10.04.2014, 12:19 #5
Цитата Сообщение от Aecttann Посмотреть сообщение
но не используя массив
Читайте из файла не построчно, а посимвольно.
C++
1
2
3
4
5
6
char s;
while( (s=file.get())!=EOF)
{
     if(  s !='A' && s !='b' && s !='C' && s !='d'  )
          cout<< s;
}
0
taras atavin
3570 / 1754 / 91
Регистрация: 24.11.2009
Сообщений: 27,567
10.04.2014, 12:27 #6
Я думал, надо из строки. Но если из файла, то можно. Посимвольная обработка, запись в буферный файл, потом один удалить, другой переименовать.
0
10.04.2014, 12:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2014, 12:27
Привет! Вот еще темы с ответами:

Доделать решение... - C++
Всем доброго времени суток) Помогите пожайлуста делать решение задачи))) А именно, не могу додуматься как сделать саму замену...

Не могу доделать - C++
Вот код: #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;algorithm&gt; using namespace std; int main() { int temp; vector...

Доделать программу - C++
Задание : Фамилия и инициалы, должность, год поступления на работу, зарплата. Создать массив объектов. Вывести: а) список работников,...

Доделать программу. - C++
Товарищи программеры, скажите что тут не так? В борланде выдает море ошибок. FUNCTION DEC2BASEN(BASE: INTEGER; DEC: LONGINT): STRING; ...


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

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

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