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

В исходной строке а определить количество слов содержащих ровно п символов строки х.
Гость
Ответ(ы) на вопрос:
Гость
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   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) > 0 then writeln(w);     end;     i := i + k   until k = 0; end. Тестовое решение: Введите длину искомых слов n: 4 Введите строку с искомыми словами (где искать): Мама мыла раму, Маша мыла полы, а Таня не мыла ничего! Введите строку с шаблоном поиска (что искать): Даша перемыла всю посуду. Результаты поиска: мыла мыла мыла
Не нашли ответ?
Ответить на вопрос
Похожие вопросы