IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Подсчет слов в строке, Реализация метода поиска
сообщение
Сообщение #1


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


задачка попалась по реализации метода подсчета слов в строке, а вот как реализовать? Была идея поисков пробелов в строке + 1, но как можно найти пробелы в строке?


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Цитата(Atreides @ 23.11.2008 19:08) *
но как можно найти пробелы в строке?

Видимо, я что-то не понимаю. А проверка на s[i]=' ' в цикле до длины строки не покатит?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
Была идея поисков пробелов в строке + 1
Не самая удачная идея:

& quot;Вот___тебе___пример,_который___это___подтвер
дает"
(пробелы заменены подчеркиваниями) Сколько слов? А пробелов? Слова, кстати, могут разделяться не только пробелами (обратного утверждения в условии тоже нет)
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


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


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Ветеран Броуновского Движения
***

Группа: Пользователи
Сообщений: 281
Пол: Мужской
Реальное имя: Сергей

Репутация: -  0  +


Все разобрался. Всем спасибо!


--------------------
Отрадно спать, отрадней камнем быть, О, этот век, преступный и постыдный, Не жить, не чувствовать - удел завидный. Прошу, молчи, не смей меня будить!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 31.10.2020 15:33
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name