Цитата:
Сообщение от Gagarin614
Напишите функцию CountStr(str1, str2: string) которая получает два параметра str1 и str2 типа string и возвращает число, указывающее, сколько раз str2 встречается в str1. Функция не должна изменять свои параметры. Кроме того, любая литера в str1 может учитываться не более чем в одном вхождении str2. Например, CountStr('балалайка', 'ала') должна возвращать 1, а не 2.
Нуждаюсь в помощи..
|
Попытаюсь таковую предоставить. Здесь и функция, и программа для проверки. Язык Вы не указали, так что (уж извините) - Паскаль:
Код:
VAR
S1,S2:STRING;
Function CountStr(str1,str2:STRING):BYTE;
var
i,j:INTEGER;
b:BOOLEAN;
N:BYTE;
begin
i:=0;
N:=0;
Repeat
b:=true;
For j:=1 to Length(str2) do
If str1[i+j]<>str2[j] then b:=false;
If b then
begin
Inc(N);
Inc(i,Length(str2));
end else Inc(i);
Until i+Length(str2)>Length(str1);
CountStr:=N;
end;
BEGIN
WriteLn('Enter the LONG string');
ReadLn(S1);
WriteLn('Enter the SHORT string');
ReadLn(S2);
WriteLn('N= ',CountStr(S1,S2));
ReadLn;
END.