• Дана строка, содержащая пробелы. Найдите в ней самое длинное слово, выведите это слово и его длину. Если таких слов несколько, выведите первое из них.

Ответы 1

  • procedure GetWord(s:string; var from:integer; var w:string; var len:integer);{ Ищет в строке s слово, начиная с позиции from. Если слово w найдено, from будет указывать на его начало,а в len будет находиться длина эого слова.если слово не найдено, w='', len=0Слова раздеяются минимум одним пробелом, за исключениемпервого и последнего слова, у которых пробел можетнаходиться только с одной стороны.}var  i,n:integer;  stop:Boolean;begin  n:=Length(s); i:=from; stop:=false;  while (i<=n) and (not stop) do    if s[i]=' ' then Inc(i) else stop:=true;  if i>n then begin len:=0; w:='' end  else begin    from:=i; stop:=false;    while (i<=n) and (not stop) do    if s[i]<>' ' then Inc(i) else stop:=true;    if i>n then len:=n-from+1 else len:=i-from;    w:=Copy(s,from,len)  endend;var  s1,wd,wdmax:string;  ic,L,Lmax:integer;begin  Write('Введите строку: '); Readln(s1);  ic:=1; Lmax:=0;  repeat    GetWord(s1,ic,wd,L);    if (L>0) and (L>Lmax) then      begin Lmax:=L; wdmax:=wd end;    ic:=ic+L+1  until L=0;  Writeln('Самое длинное слово "',wdmax,'" длины ',Lmax)end.  Тестовое решение:Введите строку: Это пример    тестовой    строки  с произвольным числом   пробелов.Самое длинное слово "произвольным" длины 12
    • Автор:

      borja
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years