Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
1 / 1 / 2
Регистрация: 13.10.2013
Сообщений: 91

Задано слово.Удалить повторяющие буквы

11.11.2013, 23:35. Показов 1529. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дано слово. Удалить из него все повторяющиеся буквы, оставив их первые вхождения, то есть в слове должны остаться только различные буквы.
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
35
36
37
#include <stdlib.h>
#include "conio.h"
#include <iostream>
#include "time.h"
#include "locale"
#include "string.h"
using namespace std;
bool exist[128];
char b[128];
int n;
bool f;
int main()
{
    setlocale(LC_ALL, "rus");
       char string[128];
          cout<<"Введите слово:";
        cin>>string;
        int L=strlen(string);
        int i=0;
        int j=0;
        exist[128]=false;
    for(i=0; i<L;i++)
 {
    if ( !exist[ string[i] ] )
    
        exist[ string[i] ] = true;
    
    else
    {
        for (int j=1;j<L-1;j++)
            string[j]=string[j+1];
         cout<<string[j+1];
    }
 }
    system("PAUSE");
return 0;
}
Помогите пожалуйста исправить данную программу.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
11.11.2013, 23:35
Ответы с готовыми решениями:

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

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

Дано слово. Если длина нечетная, то удалить среднюю букву, в противном случае две буквы
Дано слово.Если длина нечетная, то удалить среднюю букву,в противном случае две буквы.

5
 Аватар для newyork7776
351 / 344 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
11.11.2013, 23:55
смени char string[128]; на char str[128]; может быть проблема возникать здесь
как предложение,но не решение
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
12.11.2013, 00:11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
 
int main()
{
    int i, j, k;
    bool isExist     = false;
    char input[]     = "abaabccdecdghhgy";
    char output[128] = {0};
    cout<<"INPUT : "<<input<<endl;
    for( k = i = 0;  input[i]; i++ )
    {
        isExist     = false;
        for( j = 0; output[j] && !isExist; j++ )
            isExist = input[i] == output[j];
        if(!isExist)
            output[k++] = input[i];
    }
    cout<<"OUTPUT : "<<output<<endl;
    cin.get();
    return 0;
}
Проверка http://codepad.org/oCX0UXEO
INPUT : abaabccdecdghhgy
OUTPUT : abcdeghy
2
1 / 1 / 2
Регистрация: 13.10.2013
Сообщений: 91
12.11.2013, 08:01  [ТС]
Можете объяснить, что делают данные строки в программе?
C++
1
2
3
4
isExist     = false;
        for( j = 0; output[j] && !isExist; j++ )
            isExist = input[i] == output[j];
        if(!isExist)
0
 Аватар для ninja2
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
12.11.2013, 08:24
Aer_rus, просто если находиться повторяющаяся буква, то флаг устанавливается в ture и код if(!isExist), который добавляет символ в буфер не страбатывает, а если флаг не устанавливается в true так и остается false, то символ добавляется в буфер. и снова при новой итерации буфер устанавливается в false и так проверяется каждая буква. Да он проверять начинает в буфере буквы.

Лучше наглядней сделай удаляй буквы повторяющиеся из строки, например нашол букву 'а' дальше удалил все буквы 'а' из строки, и так для каждой буквы и в итоге у тебя получиться строка без повторяющихся букв.

Вообще в запутанных кода смысла нету разбираться, 90% таких кодов пишется просто при тестировании, просто человек знает что он хочет сделать и код подгоняет что б он правильно работал правит выводит на экран снова правит выводит на экран, а потом опа определил там чего то не хватает допустим какого то флага добавляет флаг и о чудо код заработал в итоге получается мелкий запутанный код в котором самому трудно разобраться не то что постороннему человеку, я так пару раз делал.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
12.11.2013, 09:39

Не по теме:

Aer_rus, как ты и просил ответил в личку



Добавлено через 3 минуты
Для всех остальных алгоритм ищет вхождение каждого символа из строки input в выходной строке output если вхождений ещё не было то дописываем букву в выходную строку
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
output[k++]
с одновременным увеличением индекса для последнего символа в выходной строке. При желании можно выполнить без дополнительной строки.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.11.2013, 09:39
Помогаю со студенческими работами здесь

Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова все предыдушие вхождения последней буквы.
привет всем, помогите составить програмку: Дан текст. Напечатать его, преобразовав каждое слово по следующему правилу: удалить из слова...

Задано слово. Определить, сколько в нем различных символов.
Задано слово. Определить, сколько в нем различных символов. Заранее спасибо:)

Задано произвольное слово. Определить, заканчивается ли оно на слог «va»
Задано произвольное слово. Определить, заканчивается ли оно на слог «va».

C (СИ) - Ввести строку символов.И После каждой 2 Буквы ( Именно буквы ) Вставить слово
Огромное Спасибо Darkrduk за эту программу ( программа вставляет MAU ) после каждого 2 символа ** .. Нужно умудриться сделать ! Именно...

Задано предложение y. Проверить, сколько раз встречается данное слово х в предложении у.
Задано предложение y. Проверить, сколько раз встречается данное слово х в предложении у. помогите пожалуйста


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru