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

Удалить повторяющиеся символы в массиве - C++

Восстановить пароль Регистрация
 
dgyda
56 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 36
28.03.2014, 13:25     Удалить повторяющиеся символы в массиве #1
Доброго времени суток форумчане!
у меня такая задачка: нужно найти и удалить все повторяющиеся элементы в массиве...
я выбрал стринговый массив, там удалить проще, но прога не пашет... подключил все библиотеки для стринга которые знал, все равно не то... в чем проблема?
вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "stdafx.h"
#include <iostream>
using namespace std;
#include <string.h>
#include <string>
#include <xstring>
#include <iterator>
 
int main()
{
    string h; int f;
    cin>>h;
    f=h.length();
    
    for (int i=0;i<f;i++)
    {
    if (h[i]==h[i+1]) h.erase(i,2); else if(h[i+1]==h[i+2]) h.erase(i+1,2); 
    }
    cout<<h;
system("pause");
return 0;
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2014, 13:25     Удалить повторяющиеся символы в массиве
Посмотрите здесь:

найти повторяющиеся символы в массиве C++
C++ удалить со строки все повторяющиеся символы
Удалить из символьного одномерного массива повторяющиеся символы C++
C++ Упорядочить символы в алфавитном порядке, при этом все повторяющиеся символы должны быть удалены и переписать новый текст в файл D
C++ Массив: Удалить все повторяющиеся элементы, оставив в массиве только один.
Удалить повторяющиеся элементы в отсортированнном массиве C++
Удалить в каждом слове массиве все символы после символа ‘*’ C++
C++ Удалить все символы после определённой позиции в массиве

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Тамика
Котовчанин
 Аватар для Тамика
859 / 439 / 129
Регистрация: 16.02.2010
Сообщений: 2,538
Записей в блоге: 27
28.03.2014, 14:20     Удалить повторяющиеся символы в массиве #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Компилятор так и написал - "Какая-то проблема" ?

Добавлено через 2 минуты
C++
1
2
3
4
for (int i=0;i<f;i++)
    {
    if (h[i]==h[i+1]) h.erase(i,2); else if(h[i+1]==h[i+2]) h.erase(i+1,2); 
    }
Где Ваша программа возьмёт h[i + 2] и h[i + 1], когда i = f - 1 ?

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
using namespace std;
#include <string.h>
#include <string>
#include <xstring>
#include <iterator>
 
int main()
{
    string h; int f;
    cin>>h;
    f = h.length() - 1;
    
    for (int i=0; i < f - 2; ++i)
    {
        if (h[i]==h[i+1]) h.erase(i,2); else if(h[i+1]==h[i+2]) h.erase(i+1,2); 
    }
    cout<<h;
system("pause");
return 0;
}
Добавлено через 8 минут
И ещё - подключайте библиотеки без фанатизма... Здесь только две нужны.
Yandex
Объявления
28.03.2014, 14:20     Удалить повторяющиеся символы в массиве
Ответ Создать тему
Опции темы

Текущее время: 17:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru