function GetCountOfWordsByLength(aStr:string; const aLen:Integer = 0):Integer;
var
s:string;
rCount:Integer;
i:integer;
sWord:string;
iwLen:Integer;
Buff:array[0..1] of Char; //Конвеерная лента
begin
Result:=-1;
s:=aStr;
for i:=1 to Length(s) do //Строки начинаются с 1-ы, а Length возвращает значение, включающее 0-ль
begin
buff[1]:=s[i];
//Если текущий символ - пробел, а предыдущий им не был, то это конец слова.
if (Buff[1] = ' ') and not (Buff[0] = ' ') then
begin
//Длинна слова
iwLen:=Length(sWord)-1;
if (iwLen = aLen) then rCount:=rCount+1;
sWord:='';
end else
begin
//Складываем слово.
sWord:=sWord+Buff[1];
end;
buff[0]:=Buff[1];
end;
Result:=rCount;
end;
Похожие записи/страницы:
- Шифр замены (код Цезаря) Занумеровать алфавит исходного сообщения. Пусть m -длина алфавита сообщения; n,k -…
- Дано целое число K, а также K наборов ненулевых целых чисел. Каждый набор содержит не менее двух элементов,…
- Выделить из предложения слова, содержащие две или более одинаковые буквы - Pascal(Паскаль)
- Дан текст на русском языке. Напечатать в алфавитном порядке все гласные буквы, которые входят в каждое слово -…
- В строке,состоящей из слов,определить количество слов,имеющих количество символов первого слова - Pascal(Паскаль)
- Дан список слов. Выведите на экран слова из списка, которые оканчиваются и начинаются с одной и той же буквы -…
- Строка состоит из слов разделенных ровно 1 пробелом, пробелов перед первым и после последнего слова нет.…
- Дана непустая последовательность слов из строчных русских букв; между соседними словами - запятая, за последним…