(рекурсивные, итерационные, с использованием массивов, без использования массивов, с ДСД, с чем-то еще... вобщем программы и алгоритмы преобразования предложения в набор слов )
СОБИРАЕМ!
Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.
| Altair |
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Предлагаю в теме собрать все способы разбиения строки на слова.
(рекурсивные, итерационные, с использованием массивов, без использования массивов, с ДСД, с чем-то еще... вобщем программы и алгоритмы преобразования предложения в набор слов ) СОБИРАЕМ! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
| Altair |
Сообщение
#2
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Функция с дополнительными возможностями.
function SepWord(s,Alf:string):tlist; Функция вовзращает указатель на структуру вида:
Проще говоря, на односвязный, динамический список: Параметры вызова функции s (string) - строка, подлежащая разбиению на слова. Alf (string) - пользовательский алфавит. описание Если первый символ $, то alf интерплитируется как алфавит. Пример alf='$1234567890'; тогда алфавит = {'1','2','3','4','5','6','7','8','9','0'} То есть таким образом можно легко распознавать например только числа в строке с мусором. Если первый символ # то далее идущие символы интерплитируются как разделители. Если первый символ другой, то alf - имя файла из которого считывается алфавит (символы - НЕ разделители). Код функции
Пример программы:
test.pas ( 1.91 килобайт )
Кол-во скачиваний: 2015Используемый алгоритм Просматриваем строку. Изначально полагаем что мы не просматриваем слово. Далее если встречаем НЕ разделитель , а признак просмотра слова ложь, меняем признак на ИСТИНУ. Далее если встречаем символ не разделитель и признак слова не ложь то прибавляем символ к временнйо строке. Если стретили символ разделитель и признак слова истина, то добавляем слово из временнйо строку в список слов. обнуляем временную строку. признак слова в ложь переходим к следующему символу. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Altair Разбиение на слова. Все способы. 16.11.2005 4:29
volvo Пожалуй, самый извращенный способ - используется р… 16.11.2005 5:02
volvo Этот - немного попроще, здесь реализован список сл… 16.11.2005 5:04
Altair Эмулирование стандартных классов в Delphi
Еще один… 16.11.2005 5:44
volvo Это - довольно простой способ (информация о найден… 16.11.2005 13:06
klem4 я вот это использую всегда :
const
limits = … 16.11.2005 19:11
kornet Еще один способ разбивки строки на слова (похож на… 18.08.2007 21:42![]() ![]() |
|
Текстовая версия | 9.11.2025 16:43 |