Подсчет слов в строке, Реализация метода поиска |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.
Подсчет слов в строке, Реализация метода поиска |
Atreides |
Сообщение
#1
|
Ветеран Броуновского Движения Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
задачка попалась по реализации метода подсчета слов в строке, а вот как реализовать? Была идея поисков пробелов в строке + 1, но как можно найти пробелы в строке?
-------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Lapp |
Сообщение
#2
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
но как можно найти пробелы в строке? Видимо, я что-то не понимаю. А проверка на s[i]=' ' в цикле до длины строки не покатит? -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
volvo |
Сообщение
#3
|
Гость |
Цитата Была идея поисков пробелов в строке + 1 Не самая удачная идея:& quot;Вот___тебе___пример,_который___это___подтвер дает" (пробелы заменены подчеркиваниями) Сколько слов? А пробелов? Слова, кстати, могут разделяться не только пробелами (обратного утверждения в условии тоже нет) |
Unconnected |
Сообщение
#4
|
mea culpa Группа: Пользователи Сообщений: 1 372 Пол: Мужской Реальное имя: Николай Репутация: 24 |
Если предположить, что слова разделяются пробелами, то можно использовать например:
Код if (s[i]=' ') and (s[i+1]<>' ') then schetchik_slov:=schetchik_slov+1; Добавлено через 16 мин. Вот программа, могущая работать с большим количеством разделителей. В качестве разделителя могут быть пробел и символ _ . Можно использовать оба, но между двумя словами может быть только один вид разделителя. Код var s:string; a,b:integer; begin writeln('Введите строку'); readln(s); for a:=1 to length(s) do begin if (s[a]=' ') and (s[a+1]<>' ') then b:=b+1; if (s[a]='_') and (s[a+1]<>'_') then b:=b+1; end; b:=b+1; writeln('В строке ', b ,' слов.'); readln; end. -------------------- "Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
|
Lapp |
Сообщение
#5
|
Уникум Группа: Пользователи Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
if (s[i]=' ') and (s[i+1]<>' ') then schetchik_slov:=schetchik_slov+1; Если это полноценный текст, то есть еще такие вещи как, например, тире, которые обрамлены пробелами.. Кроме того, между абзацами пробелов нет. Не нужно подменять одну задачу другой. Надо считать слова - считай слова. Вопрос изучен достаточно хорошо: Разбиение на слова. Все способы.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Atreides |
Сообщение
#6
|
Ветеран Броуновского Движения Группа: Пользователи Сообщений: 281 Пол: Мужской Реальное имя: Сергей Репутация: 0 |
Все разобрался. Всем спасибо!
-------------------- Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
|
Текстовая версия | 29.03.2024 0:13 |