в начальной строке а определить количество слов содержащих ровно п символов

В начальной строке а найти количество слов содержащих ровно п знаков строки х.

Задать свой вопрос
1 ответ
Const
  delim = [' ', ',', '.', ':', ';', '!', '?'];Набор разделителей

procedure GetWord(s: string; var ib: integer; var pWord: string; var l: integer);
// Возвращает слово pWord, которое является подстрокой s
// Разделителем слов являются один либо более знаков из delim.
// ib при вызове процедуры показывает на позицию в строке s,
// начиная с которой ведется поиск слова.
// При выходе из процедуры ib - позиция начала отысканного слова,
// l- длина найденного слова, l=0 если слово не найдено.
var
  i, n: integer;
  w: string;
begin
  n := Length(s);
  l := 0;
  w := '';
  if ib gt;= n then begin
    ib := n;
    pWord := ''
  end
  else begin
    i := ib;
    while (s[i] in delim) and (i lt; n) do i := i + 1;
    ib := i;
    w := '';
    while (not (s[i] in delim)) and (i lt; n) do
    begin
      w := w + s[i];
      i := i + 1
    end;
    if i lt; n then begin
      l := i - ib;
      pWord := w
    end
    else begin
      l := i - ib + 1;
      pWord := w + s[n]
    end
  end
end;

var
  w, x, a: string;
  n, k, i: integer;

begin
  write('Введите длину разыскиваемых слов n: ');
  readln(n);
  writeln('Введите строчку с разыскиваемыми словами (где разыскивать):');
  readln(a);
  writeln('Введите строчку с шаблоном поиска (что искать):');
  readln(x);
  writeln('Результаты поиска:');
  i := 1;
  repeat
    GetWord(a, i, w, k);
    if k = n then
    begin
      if Pos(w, x) gt; 0 then writeln(w);
    end;
    i := i + k
  until k = 0;
end.

Тестовое решение:

Введите длину разыскиваемых слов n: 4
Введите строчку с разыскиваемыми словами (где искать):
Мать мыла раму, Маша мыла полы, а Таня не мыла ничего!
Введите строчку с шаблоном поиска (что искать):
Даша перемыла всю посуду.
Результаты поиска:
мыла
мыла
мыла



, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт