Помогите пожалуйста!Я недавно занимаюсь С++,вроде все понимаю,но со строками у меня вообще абсолютный ступор.Задана некоторая запись длнной M,состоящая из букв и символа пробел.В начале и конце записи стоит символ пробел.Составить программу печати самой длинной последовательности букв,расположенных между двумя пробелами.
Заранее благодарен!

@темы: C++

Комментарии
20.10.2012 в 11:35

After silence that which comes nearest to expressing the inexpressible is music.
Я уже не помню плюсы ( я на C# пишу), но алгоритм такой :
1) заводите переменную buf. Итерируете по строке, записывая каждый символ в buf. Если встречается пробел, buf заносится в массив и чистится, и так пока не закончится строка.
2) Итерируем в массиве и сравниваем .length строк, самая большая - ваш ответ.

Ну или вот еще легче, без массива :
1) заводите переменные buf и result. Итерируете по строке, записывая каждый символ в buf. Если встречается пробел, то сравниваете длину в result с длиной buf и если она больше, то buf записывается в result и чистится, и так пока не закончится строка. Когда закончится строка результат будет лежать в result.
20.10.2012 в 11:59

таки можно и без buf в каждой итерации обойтись, храня начальный индекс текущей самой длинной последовательности. еще в задании не сказано, что делать, если есть несколько самых длинных последовательностей, хотя может их там и нет =)
20.10.2012 в 12:02

да, в задании действительно не сказано про несколько строк.а как сделать это дело с использованием указателей?
20.10.2012 в 12:07

а Вы не могли бы привести кусок кода,описывающий алгоритм?
20.10.2012 в 12:42

After silence that which comes nearest to expressing the inexpressible is music.
мой вариант на шарпе :



Вроде должен работать
21.10.2012 в 09:58

а можно на с++ алгоритм?