Подсчитать количество вхождений заданного слова в строку - Free Pascal
Формулировка задачи:
Если вкратце то нужно в эту прогу добавить программу которая выведет сколько раз я ввел конкретное слово в строке.
program Dz2;
var
//s: string[255 ];
s:array[1..255] of char;
i: integer;
f: boolean;
begin
writeln (#144#174#167#224#174#161#173#168#170,' ',#196,' ',#132#166#165#162#171#160#229,' ',#140#46#144#46);
i:=0;
repeat
i:=i+1;
read(s[i]);
until (s[i]='.') or (s[i]=',') or (s[i]='!') or (s[i]='?');
for i:=1 to 255 do
begin
if (s[i] = #175) and (s[i + 1] = #224) and (s[i+2] = #174) and (s[i + 3] = #163) and (s[i + 4] = #224) and (s[i + 5] = #160) and (s[i + 6] = #172) and (s[i + 7] = #160) then
begin
f := true;
break;
end;
end;
if f then writeln(#10#13#147#32#162#162#165#164#165#173#174#172#227#32#224#165#231#165#173#173#105#32#243#32#225#171#174#162#174#32#34#175#224#174#163#224#160#172#160#34#46)
else writeln(#10#13#147#32#162#162#165#164#165#173#174#172#227#32#224#165#231#165#173#173#105#32#173#165#172#160#243#32#225#171#174#162#160#32#34#175#224#174#163#224#160#172#160#34#46);
readln;
readln;
end.Решение задачи: «Подсчитать количество вхождений заданного слова в строку»
textual
Листинг программы
Function sum(s_in, s_find: string): integer; Var C: char; X, I: integer; S: string; Begin S:= ''; X:= 0; For I:= 1 to length s_in do if s_in[i]<> ' ' then s:= s+ s_in[i] else begin s:= ''; if s = s_find then inc(x); end; Sum:= x; End;
Объяснение кода листинга программы
- В коде определена функция с именем
sum, которая принимает два аргумента типаstring-s_inиs_find. - Внутри функции объявлены следующие переменные:
CтипаcharXиIтипаintegerSтипаstring
- Инициализируется переменная
Sпустой строкой (``). - Инициализируется переменная
Xзначением 0. - В цикле
Forперебираются символы строкиs_inс индексами от 1 до длины строки. - Если текущий символ не равен пробелу (' '), то он добавляется в переменную
S. - Если текущий символ равен пробелу (' ') и переменная
Sне пустая, то проверяется равенствоSстрокеs_find. - Если равенство выполняется, то значение переменной
Xувеличивается на 1. - После завершения цикла, значение переменной
Xвозвращается из функции как результат. - Значения переменных
SиXне используются вне функции.