Param41. Описать процедуру SplitStr($$S$$, $$W$$, $$N$$), которая формирует по данной строке $$S$$ массив $$W$$ слов, входящих в $$S$$ (массив $$W$$ и его размер $$N$$ являются выходными параметрами). Словом считается набор символов, не содержащий пробелов и ограниченный пробелами или началом/концом строки; предполагается, что строка $$S$$ содержит не более $$10$$ слов. Используя функцию SplitStr, найти количество слов $$N$$, содержащихся в данной строке $$S$$, и сами эти слова.
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
program Param41; type St=String; SArray= array [1..10] of string; var S:St; i,N:integer; W:SArray; Procedure SplitStr(S:St;var W:SArray; var N:integer); var i:integer; Stemp:String; begin Stemp:=''; N:=0; S:=' '+S; For i:=1 to length(S) do begin if (S[i]=' ') and (S[i+1]<>' ') then begin if N>0 then W[N]:=Stemp; Stemp:=''; inc(N); end; if S[i]<>' ' then Stemp:=Stemp+S[i]; end; W[N]:=Stemp; end; Procedure InputArray(var A:SArray; var N:integer); var i:integer; begin Writeln('---'); Writeln('Size: ',N); for i:=1 to N do Writeln(i,': ',A[i]); Writeln('---'); end; begin Write('S:'); Readln(S); SplitStr(S,W,N); InputArray(W,N); end. |
Другие задачи из раздела Param можно посмотреть здесь.
Комментарии: