В строке переставить местами слова и вывести в одну строку

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

сНежная писал(а):первое меняется со вторым, а третье без изменений. А можно на чистом Паскале, мы еще Делфи не изучали, и как сделать с циклом. прощу прощения за свои знания, я только месяц изучаю, но стараюсь :)
Можно так: бежишь по строке, пока не найдешь два пробела (т.е. два отдельных слова). Отделяешь эту строку от исходной, в ней слова меняешь местами и приклеиваешь полученную строку к результату.
Например

Код: Выделить всё

s:='Это ваша исходная строка'
s1:=''
repeat
   temp:=gettwowordsfromstring(s); //как раз получить два слова из строки, как - твое дело. Также надо предусмотреть случай, когда в строке осталось только одно слово.
   delete(s,1,length(temp));
   swapwords(temp);//это описанная выше процедура, которая меняет строки местами
   s1:=s1+temp
until s1='';
В конце в s1 получим результат
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Oleg_Rus
Сообщения: 335
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

С прошедшими всех...

а ты пыталась просто копировать строку?
&quot писал(а):for i:=1 to length(s) do
begin
if (s<>' ')and(s[i+1]=' ')
then inc(k);
end;


найдешь 1 слово, а дальше?
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Ответить