Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как найти самое длинное слово в тексте? [D6, WinXP]


Registered Guest ©   (2005-01-11 09:39:00) 

Задание вроде простое, но у меня не получается. Дан текст, в котором следует найти самое длинное слово (и вывести его). Как это сделать? Нужен пример программного кода. Best Regards...


Семен Сорокин   (2005-01-11 10:36:00) [1]


> ЮЮ ©   (11.01.05 10:33) [7]

это на случай #10 #13 хотя может и лишнее :)


ЮЮ   (2005-01-11 10:33:00) [2]

>Семен Сорокин ©   (11.01.05 10:31) [6]
Trim, пожалуй, лишнее


Семен Сорокин   (2005-01-11 10:31:00) [3]

во еще вариант на рассмотрение :))

var
 _text: string;
 _i: integer;
begin
with TStringList.Create do
 try
  Delimiter := ' ';
  DelimitedText := _text;
  _text := EmptyStr;
  for _i := 0 to Count-1 do
   if Length(_text) < Length(Trim(Strings[_i])) then
    _text := Trim(Strings[_i])
 finally
  Free
 end
end;


TUser   (2005-01-11 10:21:00) [4]


> Александр Иванов ©   (11.01.05 09:49) [2]

А запятые, числа и пр.? Кстати, интересный вопрос, 'что-то' - это одно слово или два?

program GetMaxWord;

var S: string;
 buf: string;
 res: string;
   i: integer;

begin
 readln(S);
 S:=S+' '; buf:=''; res:='';
 for i:=1 to length(S) do
   if S[i] in ['A'..'Z','a'..'z','а'..'я','А'..'Я'] then
     buf:=buf+S[i]
     else begin
     if length(buf) > length(res) then
       res:=buf;
     buf:='';
     end;      
end.


Fay   (2005-01-11 10:12:00) [5]

Ладно, даю первую подсказку : у самого длинного слова количество букв не меньше, чем у остальных слов.


KSergey   (2005-01-11 09:50:00) [6]

> Registered Guest   (11.01.05 09:39)
> Задание вроде простое, но у меня не получается.

Привели что ты делаешь и уажи место где именно не получается.

> Нужен пример программного кода. Best Regards...

Сумма?


Александр Иванов   (2005-01-11 09:49:00) [7]

index = 1;
MaxWord:='';
repeat
substr := '';
while (Str[index] = ' ')  or (index<=length(Str)) do inc(index);
while (Str[index] <> ' ') or (index<=length(Str)) do
 begin
  substr := substr+Str[index];
  inc(index);
 end;
if Length(substr) > Length(MaxWord) then
 begin
  MaxWord:=substr;
 end;
until index>length(Str);


Kerk   (2005-01-11 09:41:00) [8]

свое домашнее задание ты должен сделать сам


Наверх

Титульная страница Поиск, карта сайта Написать письмо