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

C++

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

Не получается доработать программу - C++

04.10.2014, 22:13. Просмотров 236. Ответов 0
Метки нет (Все метки)

Имеется задание:
Даны строки A и B. Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке, и удалить все символы, кроме латинских букв из A; в остальных случаях упорядочить символы A в порядке, обратном к алфавитному, удалив повторяющиеся символы, и продублировать рус-ские буквы в B.
Имеется программа на С++:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

const string end_chars = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
const string rus_chars = "ёйцукенгшщзхъфывапролджэячсмитьбюЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ";

string erase_dublicate(string text)
{
unique(text.begin(), text.end());
return text;
}

bool have_dublicate(const string& text)
{
string copy_text = erase_dublicate(text);;
return copy_text.length() != text.length();
}

bool is_Achars_in_Bchars(const string& textA, const string& textB)
{
for (int i = 0; i < textB.length(); i++)
{
if (textA.find(textB[i]) != string::npos)
return true;
}
return false;
}

string erase_all_exclude_latin(const string& text)
{
string erased_text = "";
for (int i = 0; i < text.length(); i++)
{
if (end_chars.find(text[i]) != string::npos)
erased_text.append(1, text[i]);
}
return erased_text;
}

string dublicate_rus(const string& text)
{
string new_text = "";
for (int i = 0; i < text.length(); i++)
{
new_text .append(1, text[i]);
if (rus_chars.find(text[i]) != string::npos)
new_text .append(1, text[i]);
}
return new_text;
}

string SortAlpha(string text)
{
sort(text.begin(), text.end());
return text;
}

string SortReverseAlpha(const string& text)
{
string sorted_text = SortAlpha(text);
reverse(sorted_text.begin(), sorted_text.end());
return sorted_text;
}

int main()
{
string A, B;
cout << "Input A and B: " << endl;
cin >> A >> B;

if (is_Achars_in_Bchars(A, B) && !have_dublicate(B))
{
B = SortAlpha(B);
A = erase_all_exclude_latin(A);
} else
{
A = SortReverseAlpha(A);
B = erase_dublicate(B);
B = dublicate_rus(B);
}

cout << endl << "A: " << A;
cout << endl << "B: " << B << endl;

system("pause");
return 0;
}

Проблема в том что вторая часть задания не выполняется, помогите очень нужно!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2014, 22:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не получается доработать программу (C++):

Необходимо доработать программу замены строчных букв на прописные для работы с кириллицей. - C++ Builder
Есть программа которая служит для автоматической замены строчных букв на большие в начале предложения. Но проблема в том что замена...

Не получается написать программу - C++ Builder
Дана матрица А(5,3). 1. Найти строку, содержащую минимальный элемент матрицы. 2. Найденную строку поменять местами с 4-й строкой 3....

Доработать программу "Тестирование знаний" - C++ Builder
Приветствую,на данном моменте я реализовал загрузку вопроса и 4 варианта ответа из текстового документа. Подскажите как реализовать...

Не получается откомпилировать программу в Builder 6 - C++ Builder
При компиляции программы на С++, возникает ошибка: Unresolved external '__InitVCL' referenced from C:\PROGRAM FILES...

Borland C++ Builder 2007 не получается запустить программу - C++ Builder
Я только начала знакомство с С++ Учебник я нашла только по BCB 6, а програмуму только ВСВ 2007. Как я поняла для начала работы...

Не получается запустить программу - C++ WinAPI
У меня Microsoft Visual Studio 2012 ultimate и в связи с тем, что я только только начала осваивать winapi, первым делом я хотела...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.10.2014, 22:13
Привет! Вот еще темы с ответами:

не могу закончить программу. основу (как я считаю) я написала. доработать не получается - C++
уменьшить элементы столбца на величину их индекса. вывести на экран сумму нечетных элементов в столбце. промежуточная функция: выполнить...

не получается доработать одномерный массив - C++
дан массив из 20-ти элементов,найти удвоенную сумму положительных элементов;вывести индексы тех элементов,которые больше значения...

Доработать программу - C++
День добрый. У меня есть программа, которая удваивает каждый символ, из введенной строки. Как сделать, чтобы удвоенная пара символов...

Доработать программу - C++
Как сюда добавить учет табуляции и переноса строки #include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;string&gt; ...


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

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

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