Определить, сколько раз в строке встречается заданное слово - Pascal ABC (14813)

Формулировка задачи:

Определить, сколько раз в строке встречается заданное слово.

Код к задаче: «Определить, сколько раз в строке встречается заданное слово - Pascal ABC (14813)»

textual
const N = 100;
type words = array[1..N] of string;
var input_str:string;   // исходная строка
var wrd_from_str:words;  // слова из строки
var cnt,l,match_count:byte;
var match_word:string;  // искомое слово
 
//процедура разбивает строку на слова
//@param s - исходная строка
//@param wrd - получаемый массив слов
//@param cnt - количество полученных слов
procedure DivStrToWrd(s:string;var wrd:words;var cnt:byte);
    var i,b:integer;
     divs:set of char;
     w:boolean;
    begin
    cnt :=0;
    divs:=[' ',',','.','!','?',':',';']; //разделители
    w:=false;
    s:=s+' ';
    for i:=1 to length(s) do
     begin
     if w then
      begin
      if s[i] in divs then
       begin
       inc(cnt);
       wrd[cnt]:=copy(s,b,i-b);
       w:=false;
       end;
      end else
      begin
      if not (s[i] in divs) then
       begin
       w:=true;
       b:=i;
       end;
      end;
     end;
    end;
 
  //main program
    begin
     input_str := 'adsfdsaf adsfsd fdsa fdsf? adsf adsf, adfdsf adsf';
     DivStrToWrd(input_str,wrd_from_str,cnt);
     match_word := 'adsf';
     match_count := 0;
     for l := 1 to cnt do
     begin
     Write('*', wrd_from_str[l], '* ');
     if wrd_from_str[l] = match_word then match_count := match_count + 1;
     end;
     writeln;
     writeln('matched: ',match_count);
    end.

8   голосов, оценка 4.125 из 5


СОХРАНИТЬ ССЫЛКУ