Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.97/34: Рейтинг темы: голосов - 34, средняя оценка - 4.97
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 13

Разбить строку на слова и отсортировать

11.05.2012, 13:48. Показов 6688. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите написать программу:
вот суть задачи:
вводится предложение, или несколько слов которые разделены между собой пробелами. Нужно отсортировать эти слова в алфавитном порядке и вывести их в отдельном поле Memo.
задачу нужно реализовать на C++ Builder на формах (!не в консоли!)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.05.2012, 13:48
Ответы с готовыми решениями:

Разбить строку на слова (strtok) и сравнить эти слова со словом из Edit-a
Доброго времени суток, господа! Есть строка, её нужно разбить на слова и сравнить эти слова со словом из Edit'a Программа виснет, что...

Текст из edit разбить на слова, отсортировать и залить в memo
Дан текст содержащий от 2 до 50 слов в каждом из которых от 1 до 8 латинских букв, между соседними словами не менее одного пробела, за...

Как разбить строку на слова в TStringList?
Как разбить строку на слова в TStringList?

10
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.05.2012, 14:32
Вам это, вероятно, не подойдет (слишком просто), но задача такая решается тривиально (и сортировать самому не надо). На форме размещаются Edit, Button, Memo и CheckListBox. Все происходит по нажатию кнопки: __
C++
1
2
3
4
5
6
7
8
9
     CheckListBox1->Sorted = true;
     CheckListBox1->Clear();
     int k=1;
     AnsiString Slo ="";
     while (k <= Edit1->Text.Length())
       if (Edit1->Text[k] != ' ') Slo += Edit1->Text[k++];
       else { k++;
         CheckListBox1->Items->Add(Slo); Slo ="";  }
     Memo1->Lines = CheckListBox1->Items ;
Для большей солидности CheckListBox можно убрать с поверхности (сделать невидимым).
Миниатюры
Разбить строку на слова и отсортировать  
1
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 13
11.05.2012, 14:59  [ТС]
спасибо, а можно пожалуйста весь код программы..)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.05.2012, 15:05
А нет. Приведенный код обработчика кнопки - это вся программа и есть. Там еще перед последней строкой нужно одну дописать (чтоб и последнее слово учитывалось). Я думаю, - Вы в этом сами разберетесь. [ Вы написали "ПОМОГИТЕ написать" - не "НАПИШИТЕ" же].
0
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 13
11.05.2012, 15:08  [ТС]
а если я попрошу написать...-тогда напишите?..просто очень надо, а сам я не шарю)
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
11.05.2012, 15:28
(шутник...) А я шарю?! Билдер - такая универсальная штука, что позволяет с собой работать даже детям дошкольного возраста. Запустил - кинул на форму пару кнопок или других контролов - нажал на иконку Build - и вот имеешь "полноценное приложение Виндовс". Вот что нужно сделать (дети, не смейтесь!!) ... - на заготовку формы поместить контролы TEdit TButton TMemo со вкладки Standard и со вкладки Additional CheckListBox. Затем дважды щелкнуть мышкой на элементе Button1. В появившееся окно редактора с заготовкой под ButtonClick вставить тот текст. После этого проект сохранить на диск и компилировать (Project - Build). Ошибок быть не должно. Если появятся - обнародуйте. Здесь достаточно опытных программистов, с которыми подискутировать - одно удовольствие.
0
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
11.05.2012, 23:46
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TStringList *SL = new TStringList;
 
SL->Delimiter=' ';
SL->DelimitedText= Memo1->Text;
 
SL->Sort();
 
Memo2->Text=SL->Text;
delete SL;
}
//---------------------------------------------------------------------------
1
 Аватар для Sergey-K
238 / 229 / 58
Регистрация: 27.10.2011
Сообщений: 249
12.05.2012, 00:05
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

C++
1
2
3
4
5
6
7
8
9
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  TStringList *list = new TStringList;
  list->Text = StringReplace(Memo1->Text, " ", "\n",
    TReplaceFlags() << rfReplaceAll);
  list->Sort();
  Memo2->Lines->Assign(list);
  delete list;
}
1
0 / 0 / 0
Регистрация: 11.05.2012
Сообщений: 13
12.05.2012, 09:22  [ТС]
о! вау! спасибо!..все так просто!!!))спасибо большое!)
0
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296
24.02.2015, 10:33
Цитата Сообщение от nick42 Посмотреть сообщение
Там еще перед последней строкой нужно одну дописать (чтоб и последнее слово учитывалось).
... не соображу, а что эта строка должна делать?.. какова ее функция и с чем это связано?
0
Практикантроп
 Аватар для nick42
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
24.02.2015, 11:54
Цитата Сообщение от Simulkin Stas Посмотреть сообщение
что эта строка должна делать?.. какова ее функция и с чем это связано?
По условию цикла while, дойдя до последнего символа поля Edit строка накопления Slo к общему списку не добавляется; поэтому в приведённой программе последнее слово в списке не присутствует и в сортировке участия не принимает. Это исправляется добавлением такой предпоследней строчки (после тела цикла): CheckListBox1->Items->Add(Slo);__
C++
1
2
3
4
5
6
7
8
9
     CheckListBox1->Sorted = true;
     int k=1;
     AnsiString Slo ="";
     while (k <= Edit3->Text.Length())
       if (Edit3->Text[k] != ' ') Slo += Edit3->Text[k++];
       else { k++;
         CheckListBox1->Items->Add(Slo); Slo ="";  }
     CheckListBox1->Items->Add(Slo);
     Memo1->Lines = CheckListBox1->Items ;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2015, 11:54
Помогаю со студенческими работами здесь

Разбить строку на слова и вывести их на экран
Всем доброго времени суток. У меня возник такой вопрос по С++, как можно разбить строку на слова и вывести их на экран. А вернее я...

Разбить строку на блоки, а затем эти блоки на отдельные слова
...доброго времени суток, уважаемые форумчане! Возникла задача - разбить строку на блоки, а затем эти блоки на отдельные слова. Не могу...

Разбить строку на слова и занести в данные в таблицу
Собственное по отдельности задачи вроде как элементарны и не знаю с какой стороны подойти... Необходимо в поле Edit вводить набор символов,...

Разбить строку на слова, найти их частотность, отсортировать по алфавиту
&quot;Дана последовательность, содержащая до 5 слов, в каждом из которых до 5 строчных латинских букв; между соседними словами — запятая, за...

Разбить строку на слова по нажатию первой кнопки, отсортировать список слов по нажатию второй
Разбить строку, введённую в первую ячейку первого столбца активного листа, на слова, и вывести их в ячейки первого столбца, начиная со...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru