Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/40: Рейтинг темы: голосов - 40, средняя оценка - 4.68
0 / 0 / 1
Регистрация: 22.12.2017
Сообщений: 8

Удаление повторяющихся символов строки

22.12.2017, 15:43. Показов 8827. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,встретился с такой задачей:
Создать динамический массив(размер можно вести с клавиатуры),ввести символы. Программа должна вывести строку без повторяющихся символов.
Придумал вот такую программу,по логике вроде всё правильно. Делаю проверку символов,если их больше одного,не добавляю в новую строку,первый символ добавляю всегда.
Не могу понять в чём проблема.
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
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
    int q, l, b, j, i, num, m;
    cin >> num;
    char *stroka = new char[num];
    cin >> stroka;
    l = strlen(stroka);
    cout << endl<<l;
    char *rez = new char[l];
    for (i = 0; i < l; i++)
        rez[i] = ' ';
    cout <<endl<< rez;
    b = 1;
    m = 0;
    rez[0] = stroka[0];
    for (i = 0; i < l; i++)
    {
        for (j = 0; j < l; j++)
        {
            if (stroka[i] == rez[j])
            {
                m++;
            }
         }
        if (m = 1)
        {
            rez[b] = stroka[i];
            b++;
        }
        m = 0;
    }
    cout << endl << "Bez povtoreniya" << endl << rez;
    cin >> m;
    return 0;
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2017, 15:43
Ответы с готовыми решениями:

Удаление повторяющихся символов из строки
Необходимо написать функцию delete_repeats, которая удаляет все повторяюшиеся символы из строки. например: Only three more lessons...

Удаление из строки повторяющихся символов
Например Ввод: ABBGBAZ Вывод: ABGZ

Удаление повторяющихся символов
Задача банальна. Удалить повторяющиеся символы в строке. В интернете шарил, предложенные варианты слишком сложные и непонятные. Язык си,...

5
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
22.12.2017, 16:13
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 <bitset>
 
char* remove_rep(char* s){
    std::bitset<256> bs;
    unsigned char* i, *p = reinterpret_cast<unsigned char*>(s);
    for(i = p; *i; *i = *++p){
        if(!bs.test(*p)){
            bs.set(*p, 1);
            ++i;
        }
    }
    return s;
}
 
int main(void){
    const int n = 128;
    char s[n] = "0123456789 ABCDEF ABCDEF 123 _XYZ_0012577Z!!!";
/*  ввод
    std::cout << "Enter: ";
    std::cin.getline(s, n);
*/
    std::cout << remove_rep(s) << std::endl;
    std::cin.get();
    return 0;
}
0
0 / 0 / 1
Регистрация: 22.12.2017
Сообщений: 8
22.12.2017, 16:19  [ТС]
К большому сожаление,половину кода я не понимаю. Мне бы что-то на моём уровне.Но всё равно спасибо
0
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
22.12.2017, 17:04
MistaRain, уточни задачу: удалять повтоярющиеся подряд символы (типа "AABAA" -> "ABA") или удалять повторы во всей строке ("AABAA" -> "AB")?
0
0 / 0 / 1
Регистрация: 22.12.2017
Сообщений: 8
22.12.2017, 17:11  [ТС]
Из "Ababba" в "AB"
0
249 / 219 / 63
Регистрация: 30.07.2013
Сообщений: 465
22.12.2017, 17:22
Лучший ответ Сообщение было отмечено MistaRain как решение

Решение

Ну тогда добро пожаловать в мир C++ и хэширования:
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
#include <iostream>
#include <string>
#include <vector>
 
 
int main()
{
    // прочитать строку - вполне себе динамический массив
    std::string input;
    std::getline(std::cin, input);
 
    // все возможное символы от 0x00 до 0xFF, false - пока ни одного не встретили
    std::vector<bool> chars(256, false);
    std::string output;
 
    // перебрать символы входной строки, в выход идет только впервые увиденный
    for (const auto c : input)
    {
        if (!chars[c])
        {
            output += c;
            chars[c] = true;
        }
    }
 
    std::cout << output << std::endl;
    return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2017, 17:22
Помогаю со студенческими работами здесь

Удаление повторяющихся символов
из последовательности символов удалить самую большую из одинаковых элементов допустим есть строка aabbbbzcc, на выходе aazcc ...

Удаление повторяющихся символов
Есть строка символов, я её обрабатываю, удаляю слово с повторяющимися символами,дело в том что заодно удаляются и цифровые слова, 55 44 33...

Удаление повторяющихся символов массива
Надо сделать так что бы повторяющиеся символы массива удалялись, а сам массив сдвигался.

Удаление повторяющихся символов в предложении
Фраза может быть любая. Консолька на vs подойдет.Например фраза на русском&quot;Я отлично копирую текст&quot;. После удаления повторов...

Поиск повторяющихся символов в тексте и удаление таких строк
нужен готовый .exe. Есть .txt файлы, в нем нужно по удалять строчки - где какой либо символ повторяется больше 2, 3 раз и т.д. пример:...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru