Показать сообщение отдельно
  #2  
Старый 04.12.2007, 03:08
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Код:
function  CountWords(Phrase: String; Letter: Char; WordDelimiter: Char = ';'): Word;
var
  i : Integer;
  AWord : String;
begin
  // Если строка не заканчивается разделитерем - добавим его сами
  if (Phrase[Length(Phrase)] <> WordDelimiter) then
    Phrase := Phrase + WordDelimiter;

  Result := 0;
  // Найти первый разделитель в строке
  i := Pos(WordDelimiter, Phrase);
  While (i <> 0) Do begin
    AWord := Copy(Phrase, 1, i - 1);
    if (AWord <> '') and (AWord[Length(AWord)] = Letter) then
      // Если слово не нулевой длины и заканчивается на нужную букву
      Inc(Result);

    // Отсекаем уже обработанную часть строки
    Phrase := Copy(Phrase, i + 1, Length(Phrase) - i);
    // Ищем следующий разделитель
    i := Pos(WordDelimiter, Phrase);
  end;
end;

begin
  Writeln(CountWords('вода;еда;караганда', 'а'));
end.
Ответить с цитированием