(рекурсивные, итерационные, с использованием массивов, без использования массивов, с ДСД, с чем-то еще... вобщем программы и алгоритмы преобразования предложения в набор слов )
СОБИРАЕМ!
Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.
| Altair |
Сообщение
#1
|
![]() Ищущий истину ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Предлагаю в теме собрать все способы разбиения строки на слова.
(рекурсивные, итерационные, с использованием массивов, без использования массивов, с ДСД, с чем-то еще... вобщем программы и алгоритмы преобразования предложения в набор слов ) СОБИРАЕМ! -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
![]() ![]() |
| klem4 |
Сообщение
#2
|
![]() Perl. Just code it! ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 4 100 Пол: Мужской Реальное имя: Андрей Репутация: 44 |
я вот это использую всегда :
const Сообщение отредактировано: klem4 - -------------------- perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
|
| kornet |
Сообщение
#3
|
|
Новичок ![]() Группа: Пользователи Сообщений: 11 Пол: Мужской Реальное имя: Юлиан Репутация: -1 |
Еще один способ разбивки строки на слова (похож на метод в сообщении № 3).
Алгоритм таков: 1) Заменяем все знаки пунктуации на пробелы (так же как и в методе в сообщении № 3).) 2) Удаляем все лишние пробелы (так же как и в методе сообщении № 3) и добавим последний пробел, если его нет. 3) Находим кол-во пробелов, в нашем случае оно будет равняться кол-ву слов, так как мы заранее добавили последний пробел. Заносим местоположение пробелов в байтовый массив 4) Ориентируясь на местоположение в строке пробелов, которое хранится в массиве, копируем слова в динамический список. В методе, представленном volvo в сообщении № 3, находится первый пробел во время цикла с помощью функции Pos, затем копируется часть строки с начала строки до первого пробела (слово) в динамический список, затем строка обрезается и поиск начинается сначала, и так до тех пор, пока в строке ничего не останется. В представленном мной методе сперва находятся все пробелы, а затем в соответствии с их местоположением копируются слова в динамический массив, строка при этом не обрезается (за начало каждого слова отвечает переменная start, которой перед циклом присваивается значение 1 (начало первого слова), затем её значение равно местоположению очередного пробела + 1: start := x[i3] + 1, длина слова определяется разностью между местоположением пробела и переменной start: x[i3] - start ) program cuxtstringpr; Сообщение отредактировано: kornet - |
Altair Разбиение на слова. Все способы. 16.11.2005 4:29
volvo Пожалуй, самый извращенный способ - используется р… 16.11.2005 5:02
volvo Этот - немного попроще, здесь реализован список сл… 16.11.2005 5:04
Altair Функция с дополнительными возможностями.
function … 16.11.2005 5:16
Altair Эмулирование стандартных классов в Delphi
Еще один… 16.11.2005 5:44
volvo Это - довольно простой способ (информация о найден… 16.11.2005 13:06![]() ![]() |
|
Текстовая версия | 6.11.2025 3:06 |