Помощь - Поиск - Пользователи - Календарь
Полная версия: строки
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
TAHK
Помогите решить задачу....плз
Дана строка символов, состоящая из слов (слова разделены пробелами). Группы символов, разделенные пробелами и не содержащие пробелы внутри себя, будем называть словами. Напечатать эту же последовательность слов, но в обратном порядке.
klem4
Разбиение строки на слова

заносишь слова в массив и выводишь его на экран с конца, добавляя пробелы.
volvo
Угу... А сколько пробелов добавлять? Надо же это где-то запомнить... Иначе разделители просто потеряются, а это может быть недопустимо... Надо разворачивать "на лету"...
var
s: string;
i, again: integer;

begin
s := 's start finish end begin ';

i := length(s);
while i >= 1 do begin

while (i >= 1) and (s[i] = ' ') do begin
write(s[i]); dec(i)
end;

while (i >= 1) and (s[i] <> ' ') do dec(i);
again := i + 1;
if again >= 1 then
while (again <= length(s)) and (s[again] <> ' ') do begin
write(s[again]); inc(again);
end;

end;
writeln;
end.
TAHK
Спасибо большое!
TAHK
Уважаемый volvo! Может я что-то не так делаю, но программа выводит ту же строку....почему-то...
А вот эта программа почему-то не обрабатывает последнее слово и еще она рассчитана на один побел между словами, что нужно там исправить? Пожалуйста...

var
s, s1, str: string;
a, i : word;

begin

Writeln ('Please input string');
Readln (s);
a:=1;
While i<> Length (s) do
begin
i:=i+1;
If s[i]=' ' then
begin
str:= copy (s,a,i);
Insert (str,s1,1);
end;
a:=i+1;
end;
Writeln (s1);
Readln;
end.

volvo
Цитата
программа выводит ту же строку

Какую строку ты вводишь в начале? Вот что программа распечатывает мне:
Код
      begin    end     finish start    s
Как видишь, те же слова, но в обратном порядке...

P.S. Я надеюсь, ты не распечатываешь строку через Writeln(s)?
TAHK
Цитата(volvo @ 18.12.2005 0:39) *

Какую строку ты вводишь в начале? Вот что программа распечатывает мне:
Код
      begin    end     finish start    s
Как видишь, те же слова, но в обратном порядке...

P.S. Я надеюсь, ты не распечатываешь строку через Writeln(s)?


Прошу прощения.(Пальцы кудрявые). Работает программа. А как насчет моей? Очень плохо?
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.