Дана строка символов, содержащая слова. Используя функцию, определить количество слов, имеющих заданную длину n — Pascal(Паскаль)

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;

Leave a Comment

62 − 53 =