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

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

Войти
Регистрация
Восстановить пароль
 
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
#1

Удаление из S1 - S2 - C++

23.01.2014, 14:06. Просмотров 282. Ответов 6
Метки нет (Все метки)

Написать и протестировать функцию DELETE(s1, s2), которая удаляет из строки s1 все символы, встречающиеся в строке s2.
Сделано всё в main, в функцию перенесу потом. помогите пожалуйста!
Можете объяснить мне, что не так?
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
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
int main()
{
    string string, string2, string3;
    cout << "String: ";
    getline(cin, string);
    cout << "String 2: ";
    getline(cin, string2);
    for (int i = 0; i < string.length(); i++)
    {
        for (int j = 0, k = 0; j < string2.length(); j++)
        {
            if (string[i] != string2[j])
            {
                string3[k] = string[i];
                k++;
            }
                
        }   
    }
    cout << string3 << endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.01.2014, 14:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удаление из S1 - S2 (C++):

Здесь есть удаление столбца, как добавить удаление строки - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { int n; do {cout &lt;&lt; &quot;Razmer massiva: &quot;; cin &gt;&gt; n;...

Как сделать закачку и удаление файлов, создание и удаление каталогов? - PHP
Как сделать закачку и удаление файлов, создание и удаление каталогов?

Описать класс «множество» (добавление и удаление элемента, пересечение, объединение и удаление множеств ) - C++
Описать класс «множество», позволяющий выполнять основные операции – добавление и удаление элемента, пересечение, объединение и удаление...

Удаление загрузочной записи о Windows8.1 и удаление самой Windows 8.1 при наличии двух ОС - Windows 8, 8.1
На ноутбуке на разделе C Windows XP ,установил Windows 8.1 на логический раздел E.Теперь хочу удалить 8.1 и установить туда 7.В БИОСе...

Как закрыть доступ на удаление файлов и автоматизировать их удаление через определенный промежуток времени? - Windows XP
Добрый день, жители форума. Есть следующая проблема: Имеется компьютер с виндовс хр, на один из дисков пишется видео с камер видео...

Удаление из двух таблиц (Пример Удаление поста с комментариями) - MySQL
Подскажите как решить данную проблему... Имеется связанные таблицы постов и комментариев... Нужно сделать так что бы можно было удалить...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
23.01.2014, 14:24 #2
Harmonster, string - это имя типа. А вызывать нестатические методы нужно от объекта класса, а не от самого класса.

Не особо понял смысла вашего кода, но ошибки компиляции исправил:

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
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
int main()
{
    string  string2, string3;
    cout << "String: ";
    getline(cin, string2);
    cout << "String 2: ";
    getline(cin, string3);
    for (int i = 0; i < string2.length(); i++)
    {
        for (int j = 0, k = 0; j < string3.length(); j++)
        {
            if (string2[i] != string3[j])
            {
                string3[k] = string3[i];
                k++;
            }
                
        }   
    }
    cout << string3 << endl;
}
экспериментируйте)
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
23.01.2014, 14:31  [ТС] #3
Спасибо за ответ! Ошибок компиляции у меня не было
1) Я создал две переменные типа string с названиями string, string2, string3
2) Ввел string и string2
3) В циклах проверил, если символ из string не равен символу из string2, то записал его в string3
Но сделал видимо неправильно
Extrim88
50 / 50 / 11
Регистрация: 08.02.2013
Сообщений: 189
23.01.2014, 14:35 #4
Цитата Сообщение от Harmonster Посмотреть сообщение
Я создал две переменные типа string с названиями string
Загляните в свою программу через неделю и попробуйте понять, где string - имя типа, а где объект данных...Это я про "немного странное" имя объекта данных...
Harmonster
9 / 9 / 3
Регистрация: 20.05.2012
Сообщений: 101
23.01.2014, 14:36  [ТС] #5
Цитата Сообщение от Extrim88 Посмотреть сообщение
Загляните в свою программу через неделю и попробуйте понять, где string - имя типа, а где объект данных...Это я про "немного странное" имя объекта данных...
Да, я понимаю что так делать нельзя. Уже исправил, спасибо!
kventin_zhuk
БНТУ ФИТР
215 / 155 / 15
Регистрация: 26.12.2012
Сообщений: 382
23.01.2014, 14:50 #6
Harmonster, Не нашлось лучше имени для объекта класса string?) Хотя бы string1

Добавлено через 13 минут
Harmonster,

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
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
 
int main()
{
    string string1, string2, string3;
    cout << "String: ";
    getline(cin, string1);
    cout << "String 2: ";
    getline(cin, string2);
    bool b = false;
    int pos = 0;
    for (int i = 0; i < string1.length(); i++)
    {
        b = false;
        for (int j = 0, k = 0; j < string2.length(); j++)
        {
            if (string1[i] == string2[j])
            {
                // если надено совпадение
                b = true;
                pos = j;
            }
        }   
 
        // если совпадений не было найдено
        if (!b)
        {
            string3 += string1[i];
        }
 
 
    }
    cout << string3 << endl;
 
    system("pause");
}
Alex566
240 / 152 / 18
Регистрация: 03.04.2013
Сообщений: 317
23.01.2014, 15:08 #7
Раз уж использовать stl то оп полной =).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
 
int main()
{
    string string2, string3;
    int c = 0;
    cout << "String: ";
    getline(cin, string2);
    cout << "String 2: ";
    getline(cin, string3);
    for_each(string3.begin(), string3.end(), [&string2](char c){ string2.erase(string2.find(c),1); });
    cout << string2 << endl;
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2014, 15:08
Привет! Вот еще темы с ответами:

Сцепка текста в ячейках, если совпадают значения в столбце А, удаление повторов имен, удаление лишних строк - MS Excel
Добрый день, подскажите, как решить задачу: Есть список организаций с контактами. Одна организация может быть представлена разным...

Удаление дубликатов + ассинхронное удаление из другой таблицы - MySQL
Есть две таблицы tbl_content : id, title tbl_pics : id, picname 1. Нужно удалить дубликаты &quot;title&quot; из таблицы &quot;tbl_content&quot; ...

Создание программы со своей библиотекой ( удаление элементов с N по M в строке и удаление лишних пробелов(если 2 и более оставить один)) - C++
добрый день. помогите, пожалуйста понять мои ошибки в работе. Мне нужно написать программу со своей библиотекой, которая включает в себя...

Удаление из ссылки запроса на удаление записи из БД - PHP
Всем доброго времени суток, подскажите, как решаить следующую проблему. Есть пост, в котором есть ссылка на удаление, вид ее такой :...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
23.01.2014, 15:08
Ответ Создать тему
Опции темы

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