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

Удалить из строки все символы встречающиеся более одного раза - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.73
lex123456
0 / 0 / 0
Регистрация: 18.11.2009
Сообщений: 13
13.05.2010, 03:03     Удалить из строки все символы встречающиеся более одного раза #1
ввести символьную строку удалить из строки все символы встречающиеся более одного раза
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <string.h>
#include <conio.h>
#include <iostream>
using namespace std;
 
int main()
{
   char *pStr;
  
   char str[]="abadb aaes fab";
   pStr = str;
      
   for(int i=0; str[i]; i++)
   {
   }
   cout<< pStr;
 
}
ввел строку вывел на экран. не могу понять как переменной присвоить значение первого символа чтобы сравнивать его в цикле с остальными символами.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2010, 03:03     Удалить из строки все символы встречающиеся более одного раза
Посмотрите здесь:

C++ Работа с двумерным массивом. вывести все слова, встречающиеся более одного раза.
C++ Удалить из строки s1 все символы, встречающиеся в строке s2.
C++ Удалить из массива все элементы, встречающиеся ровно два раза
Исключить символы встречающиеся в предложении более 1 раза C++
Удалить из массива все элементы, встречающиеся три раза C++
C++ Удалить из файла все слова, встречающиеся более одного раза
C++ Из произвольной строки символов удалить все повторно встречающиеся символы
Удалить из строки все буквы, встречающиеся в строке более 2 раз C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Rajd
 Аватар для Rajd
44 / 22 / 1
Регистрация: 20.11.2008
Сообщений: 178
13.05.2010, 04:22     Удалить из строки все символы встречающиеся более одного раза #2
Решение не так уж и сложно. Я опишу алгоритм,

Не по теме:

а код с утра у меня плохо пишется, до сих пор не проснулся.



0 определяешь три доп переменные в одной будешь хранить символ в другой полученную строку а третья будет флагом.
1 делаешь два цикла для сортировки манного массива(строка ведь массив)
2 в первом цикле берешь символ из исходной строке и обнуляешь флаг.
3 во втором цикле делаешь прогон текущего символа по всем если хоть с одним совпадет то устанавливаешь флаг в истину.
4 после завершения второго цикла в первом если флаг ложен добавляем во вторую доп.переменную текущий символ.
5. начинаем следующую итерацию цикла.
6. завершаются все циклы печатаем вторую доп переменную.
Mr.X
Эксперт С++
 Аватар для Mr.X
2803 / 1579 / 247
Регистрация: 03.05.2010
Сообщений: 3,667
13.05.2010, 16:38     Удалить из строки все символы встречающиеся более одного раза #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
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
#include <string>
#include <iostream>
 
std::string  make_unique_chars(std::string s)
{   
    for(size_t i = 0; i < s.size(); ++i)
    {
        while(s.find(s[i]) < i)
        {
            s = s.erase(i, 1);
        }
    }
    return s;
}
 
int main()
{
    std::string s;
    for(;;)
    {
        std::cout << "Input string: "                  
                  << std::endl;        
        getline(std::cin, s);
        
        std::cout << std::endl         
                  << "Udaleny dublikaty symvolov: "
                  << std::endl
                  << make_unique_chars(s)
                  << std::endl
                  << std::endl
                  << std::endl;
    }
    return 0;
}
Yandex
Объявления
13.05.2010, 16:38     Удалить из строки все символы встречающиеся более одного раза
Ответ Создать тему
Опции темы

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