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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 21, средняя оценка - 5.00
Lizardomsk
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 22
02.03.2012, 10:59     Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. #1
Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. на С++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.03.2012, 10:59     Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы.
Посмотрите здесь:

C++ Дан одномерный массив, элементы которого - целые числа. Удалите из него все повторяющиеся элементы, оставив только их первые вхождения.
удалить из массива повторяющиеся элементы, оставив только их первые вхождения. класс-контейнер вектор C++
C++ Строки. В каждом чётном по порядку слове удалить все нечётные буквы, а в каждом нечётном слове удалить все чётные буквы.
Преобразовать каждое слово в строке, удалив из него все вхождения первой буквы этого слова C++
Удалить из слова все повторяющиеся буквы, оставив их первые вхождения C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.03.2012, 11:43     Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
bool exist['z' + 1];
 
int main()
{
    char str[] = "aabbaaabc";
    
    for (int i = 0; str[i]; ++i)
        if ( !exist[ str[i] ] )
        {
            std::cout << str[i];
            exist[ str[i] ] = true;
        }
    
}
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,155
Завершенные тесты: 1
02.03.2012, 11:43     Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
bool table[256];
for(int i=0;i<256;i++)table[i]=false;
char word[]="test word";
int L=strlen(word);
for(int i=0;i<L;i++)
{
    char currrent=word[i];
     if(!table[current])
          table[current]=true;
    else
   {
       for(int j=i;j<L-1;j++)
              word[j]=word[j+1];
       L--;
   }
}
 
}
Lizardomsk
0 / 0 / 0
Регистрация: 20.02.2012
Сообщений: 22
02.03.2012, 13:32  [ТС]     Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. #4
Что значит bool exist['z' + 1]; в программе
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
#include "stdafx.h"
#include "stdlib.h"
#include "stdafx.h"
#include "conio.h"
#include <iostream>
#include "time.h"
#include "locale"
#include "string.h"
using namespace std;
bool exist['z' + 1];
 
int main()
{
       char string[100] = "";
          printf("Enter your string: ");
        scanf("%s", &string);
        for (int i = 0; string[i]; ++i)
                if ( !exist[ string[i] ] )
                {
                        std::cout << string[i];
                        exist[ string[i] ] = true;
                }
        system("PAUSE");
return 0;
}
 Комментарий модератора 
Создашь еще одну тему-дубль — получишь карточку
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
02.03.2012, 14:05     Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы. #5
Массив размером ('z' + 1), т.е. максимальный индекс этого массива равен 'z'.
На самом деле это не совсем хороший код, т.к. есть еще несколько символов больше 'z'. Поэтому можно написать 128, так будет надежнее.
Yandex
Объявления
02.03.2012, 14:05     Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы.
Ответ Создать тему
Опции темы

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