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

Ответы 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 >= n then begin    ib := n;    pWord := ''  end  else begin    i := ib;    while (s[i] in delim) and (i < n) do i := i + 1;    ib := i;    w := '';    while (not (s[i] in delim)) and (i < n) do    begin      w := w + s[i];      i := i + 1    end;    if i < n then begin      l := i - ib;      pWord := w    end    else begin      l := i - ib + 1;      pWord := w + s[n]    end  endend;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) > 0 then writeln(w);    end;    i := i + k  until k = 0;end.Тестовое решение:Введите длину искомых слов n: 4Введите строку с искомыми словами (где искать):Мама мыла раму, Маша мыла полы, а Таня не мыла ничего!Введите строку с шаблоном поиска (что искать):Даша перемыла всю посуду.Результаты поиска:мыламыламыла
    • Автор:

      jameson3
    • 6 лет назад
    • 0
  • Добавить свой ответ

Еще вопросы

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years