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

Проверка символа на повторяемость. - C++

Восстановить пароль Регистрация
 
D&B
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 3
07.05.2011, 03:56     Проверка символа на повторяемость. #1
Всем здравствуйте!
При разработке программы столкнулся с проблемкой.

Задача:
На входе имеется массив символов, например, mamamilaramu.
На выходе нужно получить массив символов из которых состоит прошлая строчка, т.е.: mailru (без повторений)

Не могу сообразить алгоритм этого действия.
Может кто-нибуть подскажет как это реализовать? А если кто-то еще и клочек программки выложит, буду вообще бескрайне благодарен. =)
Заранее спасибо!

P.S. Понимаю что задачка довольно примитивная и прошу не смеяться слишком громко. =)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mishnik
 Аватар для Mishnik
14 / 14 / 1
Регистрация: 07.05.2011
Сообщений: 42
07.05.2011, 04:24     Проверка символа на повторяемость. #2
Несколько способов.
Можно, например, хранить булев массив меток(на каждый символ алфавита 1 метка).

Реализуется просто.

Добавлено через 14 минут
Код примитивный (в 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
#include <stdio.h>
 
int main() {
    char cInText[100];
    char cOutText[28];
    scanf("%s", cInText);
 
    short int labl[27];
    for (int i = 0; i<27; i++)
        labl[i] = 0;
 
    int i = 0;
    int j = 0;
    while (cInText[i] != '\0'){
        if (!labl[int(cInText[i] - 'a')]){
            cOutText[j] = cInText[i];
            labl[int(cInText[i] - 'a')] = 1;
            j++;
        }
        i++;
    }
    cOutText[j] = '\0';
 
    printf("\n\r%s", cOutText);
 
    return 1;
}
igorrr37
 Аватар для igorrr37
1594 / 1222 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
07.05.2011, 07:49     Проверка символа на повторяемость. #3
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <string.h>
 
int main(){
    char *szIn="mamamilaramu", szOut[100]={'\0'}, *a=szIn, *b=szOut;
    for(; *a; ++a){
        if(!strchr(szOut, *a)){
            *b++=*a;
        }
    }
    puts(szOut);
    return 0;
}
D&B
0 / 0 / 0
Регистрация: 07.05.2011
Сообщений: 3
07.05.2011, 11:39  [ТС]     Проверка символа на повторяемость. #4
Спасибо большое! Все просто и наглядно.
Yandex
Объявления
07.05.2011, 11:39     Проверка символа на повторяемость.
Ответ Создать тему
Опции темы

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