Так пойдет?
//Pascal
var s, s1, max: string;
begin
writeln('Введите !exit для выхода.');
repeat
write('Введите строку: ');
readln(s);
if s <> '!exit' then
begin
s := s + ' '; // max:='';
while Pos(' ', s) > 0 do
begin
s1 := Copy(s, 1, Pos(' ', s) - 1);
Delete(s, 1, Pos(' ', s));
if Length(s1) > Length(max) then max := s1;
end;
end;
until s = '!exit';
writeln('Самое длинное слово среди всех строк = ', max);
writeln('Кол-во букв: ', Length(max));
readln;
end.
Пример:
Введите !exit для выхода.
Введите строку: test
Введите строку: testtest
Введите строку: testtesttest
Введите строку: 123
Введите строку: 1234
Введите строку: 12345
Введите строку: !exit
Самое длинное слово среди всех строк = testtesttest
Кол-во букв: 12