Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
PeakABoo
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
1

Удалить из текста повторные вхождения слов

28.05.2015, 17:57. Просмотров 950. Ответов 3
Метки нет (Все метки)

Добрый день! Дан текст, содержащий от 2 до 40 слов, в каждом из которых от 1 до 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
38
39
40
41
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
   String s = "kill,kill,sell,bull,full,cool,full,bear,full.";
 
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  Edit1->Text = s;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TStringList *sl = new TStringList;
  sl->Delimiter = ',';
  sl->DelimitedText = s;
  String ss = "", temp = "";
  for(int i = 0; i <= sl->Count ; i++)
   {
    for(int j = i+1; j <= sl->Count -1 ; j++)
    {
     if(sl->Strings[i] ==  sl->Strings[j])
     sl->Delete(ninja);
 
   }
    ss += sl->Strings[i] + ",";
   }
  Edit2->Text = ss + ".";
  delete sl;
}
//---------------------------------------------------------------------------
Но она выдает ошибку List index out of bounds (7).
Прошу помощи!
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2015, 17:57
Ответы с готовыми решениями:

Как удалить из списка все повторные записи?
Помогите дописать программу, условия таковы: 1. В магазине формируется список...

Кодировка текста перестановкой столбцов в массиве, составленном из слов текста
Нужно заполнить двумерный массив с поля (Edit) после некоторых операций...

Удалить из текста повторные вхождения слов
из данного текста удалить повторные вхождения слов

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

Удалить из строки повторные вхождения слов
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1...

3
gunslinger
случайный прохожий
1291 / 812 / 320
Регистрация: 20.07.2013
Сообщений: 2,292
28.05.2015, 18:42 2
Строку №28 замени на
C++
1
  for(int i = 0; i < sl->Count ; i++)
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26146 / 17524 / 6949
Регистрация: 22.10.2011
Сообщений: 30,859
Записей в блоге: 6
28.05.2015, 19:12 3
Лучший ответ Сообщение было отмечено PeakABoo как решение

Решение

PeakABoo, на самом деле все гораздо проще:
C++
1
2
3
4
5
6
7
8
    TStringList *sl = new TStringList;
    sl->CommaText = s.SubString(1, s.Length() - 1);
    for (int i = sl->Count - 1; i >= 0; i--)
    {
        if (sl->IndexOf(sl->Strings[i]) < i) sl->Delete(i);
    }
    Edit2->Text = sl->CommaText + ".";
    delete sl;
2
PeakABoo
0 / 0 / 0
Регистрация: 13.05.2015
Сообщений: 10
28.05.2015, 19:31  [ТС] 4
СПАСИБО ОГРОМНОЕ!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.05.2015, 19:31

Удалить из строки повторные вхождения слов
Дана последовательность, содержащая от 1 до 30 слов, в каждом из которых от 1...

Удалить повторные вхождения слов в предложение
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов...

Удалить повторные вхождения слов в предложение
Дан файл, содержащий текст на русском языке. В предложениях некоторые из слов...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru