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

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

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

замена повторяющихся символов - C++

06.03.2011, 21:37. Просмотров 933. Ответов 7
Метки нет (Все метки)

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

Замена повторяющихся элементов на минимальный - C++
Привет всем. Не могу найти ошибку :( помогите, пожалуйста. Задача такова: В заданном массиве заменить повторяющиеся элементы на...

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

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

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

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

Указать индексы повторяющихся символов - C++
Сдвиг сделан, дубликаты удалены, а как найти индексы не могу понять... В примере использовал 10 вместо 100 чтоб проще было проверять...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
06.03.2011, 23:11 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
#include<algorithm>
#include<windows.h>
 
int main(){
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    std::string s="(например: какккккаяяяя хорооооошая поггггода)";
    std::string::iterator it;
    while((it=std::adjacent_find(s.begin(), s.end()))!=s.end()){
        s.erase(it);
    }
    std::cout<<s<<"\n";
}
1
dimon1984
40 / 38 / 0
Регистрация: 22.01.2011
Сообщений: 670
06.03.2011, 23:31 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
    char s[]="какккккаяяяя хорооооошая поггггода";
    int i=0;
    for(int x=0; x<strlen(s);x++)
    {
        if(s[x]==s[x+1]) continue;
        s[i++]=s[x];
    }
    s[i]=0;
    cout<<s<<endl;
 
    system("pause");
    return 0;
}
1
dan_strong
6 / 6 / 0
Регистрация: 28.12.2010
Сообщений: 113
08.03.2011, 20:50  [ТС] #4
спасибо парни)) а теперь не подскажите, как посчитать количество удаленных символов? каждый по отдельности..
0
dimon1984
40 / 38 / 0
Регистрация: 22.01.2011
Сообщений: 670
08.03.2011, 21:11 #5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int main()
{
        char s[]="какккккаяяяя хорооооошая поггггода";
        int i=0, udaleno=0;
        for(int x=0; x<strlen(s);x++)
        {
                if(s[x]==s[x+1]) { udaleno++; continue; }
                s[i++]=s[x];
        }
        s[i]=0;
        cout<<s<<' '<<udaleno<<endl;
 
        system("pause");
        return 0;
}
1
dan_strong
6 / 6 / 0
Регистрация: 28.12.2010
Сообщений: 113
08.03.2011, 21:29  [ТС] #6
не не, смотри это посчитается в общем количество удаленных! а надо чтоб каждый символ считался в отдельности! чтоб написало мне к примеру:
символов "к" удалено 3; символов "а" удалено "7"; ну и так далее.....
0
dimon1984
40 / 38 / 0
Регистрация: 22.01.2011
Сообщений: 670
08.03.2011, 22:15 #7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
int main()
  {
        char s[]="какккккаяяяя хорооооошая поггггода";
        int i=0, udaleno=0;
    char temp;
        for(int x=0; x<strlen(s);x++)
        {
            if(s[x]==s[x+1]) 
        {
            temp=s[x];
            udaleno++; continue;
        }
            s[i++]=s[x];
            if(udaleno){
                cout<<temp<<" - udaleno:"<<udaleno<<endl;
                udaleno=0;}
        }
        s[i]=0;
        cout<<s<<endl;
 
        system("pause");
        return 0;
}
1
dan_strong
6 / 6 / 0
Регистрация: 28.12.2010
Сообщений: 113
09.03.2011, 18:20  [ТС] #8
воо) спасибо огромное!!!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.03.2011, 18:20
Привет! Вот еще темы с ответами:

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

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

Функция проверки наличия повторяющихся символов - C++
пишу программу которая проверяет все ли символы в строке встречаются 1 раз, но столкнулся с ошибкой. Не понимаю в чём может быть ошибка. ...

Закодировать входную строку алгоритмом сокращения повторяющихся символов. - C++
Закодировать входную строку алгоритмом сокращения повторяющихся символов. Каждая последовательность одинаковых символов длиной более 4...


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

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

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