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

C++

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

Не могу найти ошибку в программе - C++

05.10.2014, 21:30. Просмотров 250. Ответов 0
Метки нет (Все метки)

Есть задание:
Даны строки A и B. Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в алфавитном порядке, и удалить все символы, кроме латинских букв из A; в остальных случаях упорядочить символы A в порядке, обратном к алфавитному, удалив повторяющиеся символы, и продублировать рус-ские буквы в B.

Помогите найти ошибку, ибо вторая часть задания не выполняется

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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#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
05.10.2014, 21:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу найти ошибку в программе (C++):

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

Что-то не могу найти ошибку. Группа не работает.не вводятся данные - C++
#include &lt;iostream&gt; #include &lt;windows.h&gt; #include &lt;conio.h&gt; using namespace std; class Group { char group_new; ...

Исправьте пожалуйста ошибку в программе. Там не работает почему то 5 и 6 меню - C++
#include &lt;iostream&gt; // Підключення модулів #include &lt;stdlib.h&gt; #include &lt;cstdio&gt; #include &lt;string.h&gt; #include &lt;stdio.h&gt; #include...

Не могу понять как исправить ошибку - C++
#include &lt;vcl.h&gt; #pragma hdrstop #include &quot;Unit1.h&quot; //--------------------------------------------------------------------------- ...

Не могу понять ошибку функции TextOut - C++
мне нужно вывести строку в окно формы. и пишу такой код где S - char S; ошибку выдает след: error C2664: 'TextOut': cannot convert...

Найти ошибку в программе - C++ Builder
Всем привет. Я новичок в C++ и пытаюсь сделать программу для построения графиков как тут, и вроде все работает но неправильно строит...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.10.2014, 21:30
Привет! Вот еще темы с ответами:

Найти ошибку в программе. - C++ Builder
АТД -двухмерный массив (матрица) вещественных чисел. Дополнительно перегрузить следующие операции: () доступ по индексу; - разность...

Помогите найти ошибку в программе - C++ Builder
#include &lt;iostream.h&gt; #include &lt;math.h&gt; #include &lt;stdlib.h&gt; #include &lt;conio.h&gt; void main() { double Min=-50000.,...

Найти ошибку в программе (вычисление радиуса окружности) - C++ Builder
Составить функцию, которая вычисляет радиус R окружности, описанной вокруг правильного многоугольника с известной длиной стороны a и...

в программе ошибка,найти не могу - C++ Builder
#include&lt;stdio.h&gt; #include&lt;conio.h&gt; #include&lt;complex.h&gt; #include&lt;stdlib.h&gt; #include&lt;graphics.h&gt; #define K 7 #define M 50 ...


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

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

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