String56. Дана строка-предложение на русском языке. Вывести самое короткое слово в предложении. Если таких слов несколько, то вывести последнее из них. Словом считать набор символов, не содержащий пробелов, знаков препинания и ограниченный пробелами, знаками препинания или началом/концом строки.
Решение:
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 |
program String56; var S,SmallWord:String; poz:integer; begin Write('S: '); Readln(S); poz:=pos(' ',S); SmallWord:=copy(S,1,poz-1); While (poz<>0) do begin if poz=1 then delete(S,1,1); if poz>1 then begin if (poz-1)<=Length(SmallWord) then SmallWord:=copy(S,1,poz-1); Delete(S,1,poz); end; poz:=pos(' ',S); end; if Length(S)<=Length(SmallWord) then SmallWord:=S; Writeln(SmallWord); end. |
Другие задачи из раздела String можно посмотреть здесь.
Комментарии: