Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508

Удалить одинаковые буквы из контейнера std::string

25.02.2016, 00:57. Показов 1614. Ответов 34
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо найти в первой строке так же во второй строке одинаковые буквы и удалить все кроме одной похожей. При это удаляется впереди стоящая запятая если она есть, или сзади стоящая. Пример:
-даны буквы A B C D
-даны операции , v ^
Например: A^B,C,A,DvB и B,A,AvD
После удаления всех кроме одной похожей буквы остается в первой строке A^B,C,DvB
После удаления всех кроме одной похожей буквы остается во второй строке B,AvD
Проблемным в задании является то что буквы известны только после ввода в строки(буквы и операции в строке).

Добавлено через 3 часа 6 минут
коменты

Добавлено через 45 минут
я не могу удалив похожие одной буквы в строке, удалять также следующие похожие буквы

Добавлено через 21 минуту
ну как то так но это не то
C++
1
2
3
4
5
6
7
string abc = "A";
    size_t found_L, found_R;
    if ((found_L = leftPPF.find_first_of(abc) != std::string::npos) && (found_R = rightPPF.find_first_of(abc) != std::string::npos)) {
 
        replace(leftPPF.begin() + found_L + 1, leftPPF.end(), abc[0], ' ');
        replace(rightPPF.begin() + found_R + 1, rightPPF.end(), abc[0], ' ');
    }
Добавлено через 23 минуты
есть у кого идеи или что то непонятно по заданию

Добавлено через 21 минуту
через цикли тоже не получается
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
    for (unsigned int i = 0; i < leftPPF.length() - 1; ++i) {
 
        for (unsigned int k = i + 2; k < leftPPF.length(); ++k) {
            // шаг 13!
            if (leftPPF[i] == leftPPF[k]) {
 
                leftPPF[i] = ' ';
                leftPPF.erase(leftPPF[i], 1);
            }
        }
    }
    for (unsigned int j = 0; j < rightPPF.length() - 1; ++j) {
 
        for (unsigned int k = j + 2; k < rightPPF.length(); ++k) {
            // шаг 13!
            if (rightPPF[j] == rightPPF[k]) {
 
                rightPPF[j] = ' ';
                rightPPF.erase(rightPPF[j], 1);
            }
        }
    }
 
    cout << leftPPF << "=>" << rightPPF;
Добавлено через 43 минуты
надо удалить надо надо удалить
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.02.2016, 00:57
Ответы с готовыми решениями:

ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri
на вод поступают 2 строки типа string. определить количество вхождений строки 2 в строку 1 ошибка error: cannot convert 'std::string {aka...

Запрошено преобразование от ‘const std::string*’ к нескалярному типу ‘std::string’
private: std::string firstName; }; std::string ClientData::getFirstName() const{ return firstName; } Дает в итоге...

Перевод строк std::string, std::wstring в Unicode (String)
Собственно столкнулся с проблемой, как корректно перевести к примеру текст из Edit1-&gt;Text в std::string или std::wstring и...

34
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 06:27
Опять непонятно:
Цитата Сообщение от MuslimPalit Посмотреть сообщение
Необходимо найти в первой строке так же во второй строке одинаковые буквы и удалить все кроме одной похожей.
Цитата Сообщение от MuslimPalit Посмотреть сообщение
Например: A^B,C,A,DvB
Цитата Сообщение от MuslimPalit Посмотреть сообщение
После удаления всех кроме одной похожей буквы остается в первой строке A^B,C,DvB
А как же B, их же две?
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 17:13  [ТС]
nd2, они связаны операцией, удаляем только свободные

Добавлено через 1 минуту
nd2, сможешь сделать или скажи какие средства и как сделать? Я много вариантов перепробовал но все никак, просто все средства string использовать на максимум не могу
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 17:24
A,A^B,C,D,A,DvB,B,D
Что должно получиться?
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 17:35  [ТС]
A^B,C,DvB
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
25.02.2016, 17:43
MuslimPalit, Приведите полный текст задания, а то сперва:
Цитата Сообщение от MuslimPalit Посмотреть сообщение
удалить все кроме одной похожей
а потом:
Цитата Сообщение от MuslimPalit Посмотреть сообщение
они связаны операцией, удаляем только свободные
. Никто не понимает, что вам надо.
1
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 17:45
Непонятно, что нужно сделать. Одно понятно: буквы, связанные операциями, не трогать.
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 17:45  [ТС]
Необходимо найти в первой строке так же во второй строке одинаковые буквы и удалить все кроме одной похожей. При это удаляется впереди стоящая запятая если она есть, или сзади стоящая. Пример:
-даны буквы A B C D
-даны операции , v ^
Например: A^B,C,A,DvB и B,A,AvD
После удаления всех кроме одной похожей буквы остается в первой строке A^B,C,DvB
После удаления всех кроме одной похожей буквы остается во второй строке B,AvD
Проблемным в задании является то что буквы известны только после ввода в строки(буквы и операции в строке).
25.02.16
операции ^ V должны остаться в сохранности, уходят только те буквы где операций этих нет

Добавлено через 24 секунды
написано много и может показаться непонятным, просто надо исключить из строки все одинаковые буквы кроме одной, обязательно если есть буква должна быть в операции A^B а не так ^B
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 17:47
Цитата Сообщение от MuslimPalit Посмотреть сообщение
и удалить все кроме одной похожей.
Не по русски, поэтому непонятно.
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 17:49  [ТС]
nd2, дано строки две, но можно и на одну сделать а вторую повторить. Что непонятного если надо удалить похожие буквы из строки кроме одной, соответственно знак запятая тоже должен уйти чтобы не мешал, но операторы(^,v) трогать не можем поэтому обязательно буквы участвующие в них не трогать
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 17:52
Одинаковые свободные буквы убираются, если их больше чем одна?

Добавлено через 53 секунды
Цитата Сообщение от MuslimPalit Посмотреть сообщение
но операторы(^,v) трогать не можем поэтому обязательно буквы участвующие в них не трогать
Это я уже понял, нужно со свободными буквами разобраться.
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
25.02.2016, 17:53
MuslimPalit, Все операции бинарные? Между запятыми может быть либо <буква><операция><буква> либо <буква>?
1
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 17:55  [ТС]
nd2, да

Добавлено через 1 минуту
avgoor, да так и есть и ничего больше все что до преобразовал до этого состояния ничего другого не может быть <буква><операция><буква> либо <буква>
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 17:55
A,A^B,C,D,A,DvB,B,AvC,C
Получаем такое?
A^B,D,DvB,B,AvC
0
 Аватар для avgoor
1550 / 877 / 179
Регистрация: 05.12.2015
Сообщений: 2,555
25.02.2016, 17:55
Пробелы, табуляции?
1
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 18:04  [ТС]
Цитата Сообщение от nd2 Посмотреть сообщение
A,A^B,C,D,A,DvB,B,AvC,C
Получаем такое?
A^B,D,DvB,B,AvC
говорю еще раз уходят все похожие кроме одной, A^B,DvB,AvC то что в операции обязательно

Добавлено через 2 минуты
avgoor, я программу пиши в string и все идет в строке даже пробелов в строке нет. а между строками как хочешь. Это один из 21 шагов, по моему 13-й и выведен будет один раз
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 18:06
Цитата Сообщение от MuslimPalit Посмотреть сообщение
говорю еще раз уходят все похожие кроме одной, A^B,DvB,AvC то что в операции обязательно
Т.е., ответ на это:
Цитата Сообщение от nd2 Посмотреть сообщение
A,A^B,C,D,A,DvB,B,AvC,C
Получаем такое?
A^B,D,DvB,B,AvC
нет?
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 18:10  [ТС]
nd2, нет
0
nd2
3438 / 2817 / 1249
Регистрация: 29.01.2016
Сообщений: 9,427
25.02.2016, 18:11
Тогда я ничего не понял. Кто понял - пусть помогает. От темы отписался.
0
 Аватар для MuslimPalit
30 / 6 / 9
Регистрация: 23.03.2015
Сообщений: 508
25.02.2016, 18:16  [ТС]
nd2, даже если такое AvB,C^B,BvD,B его результат AvB,C^B,BvD в операции буквы обязательные, но и они уйдут позже, но сейчас надо сделать это преобразование. Предположительно я знаю как сделать но осуществить не получается: берем алфавит и парсим по нему все буквы в строке, если есть буква связанная операцией то мы удаляем все похожией кроме тех что находятся в операции
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.02.2016, 18:16
Помогаю со студенческими работами здесь

Упорядочить по алфавиту буквы каждого слова и удалить слова, содержащие одинаковые буквы
Преобразовать данное предложение, упорядочив по алфавиту буквы каждого слова и удалив слова, содержащие одинаковые буквы. #include...

Как удалить одинаковые буквы из строки?
Возник вопрос: Как удалить одинаковые буквы из строки? Есть вот это: for(int i = 0; i &lt; word.length(); i++) { ...

Удалить подряд идущие одинаковые буквы
помогите,пожалуйста, с составлением программы: Оставить в данном слове из каждого набора одинаковых букв, идущих подряд, только одну букву

На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами
подскажите есть вот такая задача. Есть список . Создать второй список, в котором будут все эти же числа, но не в виде строк, а в виде...

Удалить из строки слова начинающиеся и заканчивающиеся на одинаковые буквы
помогите пожалуйста сделать программу на паскале: удалить из строки слова начинающиеся и заканчивающиеся на одинаковые буквы.спасибо...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru