Помощь - Поиск - Пользователи - Календарь
Полная версия: Подсчет слов в строке
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
Atreides
задачка попалась по реализации метода подсчета слов в строке, а вот как реализовать? Была идея поисков пробелов в строке + 1, но как можно найти пробелы в строке?
Lapp
Цитата(Atreides @ 23.11.2008 19:08) *
но как можно найти пробелы в строке?

Видимо, я что-то не понимаю. А проверка на s[i]=' ' в цикле до длины строки не покатит?
volvo
Цитата
Была идея поисков пробелов в строке + 1
Не самая удачная идея:

& quot;Вот___тебе___пример,_который___это___подтвер
дает"
(пробелы заменены подчеркиваниями) Сколько слов? А пробелов? Слова, кстати, могут разделяться не только пробелами (обратного утверждения в условии тоже нет)
Unconnected
Если предположить, что слова разделяются пробелами, то можно использовать например:
Код

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
Цитата(Unconnected @ 24.11.2008 15:32) *
if (s[i]=' ') and (s[i+1]<>' ') then schetchik_slov:=schetchik_slov+1;
Если это полноценный текст, то есть еще такие вещи как, например, тире, которые обрамлены пробелами.. Кроме того, между абзацами пробелов нет. Не нужно подменять одну задачу другой. Надо считать слова - считай слова. Вопрос изучен достаточно хорошо: Разбиение на слова. Все способы.
Atreides
Все разобрался. Всем спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.