uses
crt;
const
dividers=[' ',',','.',';',':','-','=','+'];
var
s,max,temp:string;
i:integer;
begin
clrscr;
writeln('----...');
readln(s);
temp:='';
max:='';
for i:=1 to length(s) do
begin
if not (s[i] in dividers) then
temp:=temp+s[i];
if ((s[i] in dividers) or (i=length(s))) and (temp<>'') then
begin
if length(temp)>length(max) then
max:=temp;
temp:='';
end;
end;
writeln('Строка: ',max,'. Длина: ',length(max))
end.
Вариант 2
uses crt;
var max,st,buf:string;
begin
clrscr;
max:='';
write('-> ');
readln(st);
repeat
if (st[1]=' ') or (length(st)=0) then while st[1]=' ' do delete(st,1,1)
else
begin
while (st[1]<>' ') and (length(st)>0) do
begin
buf:=buf+st[1];
delete(st,1,1);
end;
if length(buf)>length(max) then max:=buf;
buf:='';
end;
until (length(st)=0) and (length(buf)=0);
writeln('Самое длинное слово - ',max,',его длина - ',length(max));
readln;
end.
Вариант 3
var
s,slovo,slovo1:string;
i,max:integer;
begin
writeln('stroka');
readln(s);
s:=s+' ';
for i:=1 to length(s) do begin
if s[i]<>' ' then slovo:=slovo+s[i];
if s[i]=' ' then begin
if length(slovo)>max then begin
max:=length(slovo);
slovo1:=slovo;
end;
slovo:='';
end;
end;
writeln(slovo1);
writeln(max);
end.