Вывести слова строки в обратном порядке
Вводится строка слов. Вывести слова в обратном порядке.
Описание переменных:
- str - строка;
- len - длина строки;
- a - длина очередного слова;
- i - текущая позиция в строке.
Алгоритм решения задачи:
Будем перебирать символы строки с конца и измерять количество подряд идущих непробельных символов. Если очередной символ - пробел, следует вывести на экран отрезок строки от предыдущего с конца символа (i + 1
) на длину подряд идущих непробельных символов. Это делается с помощью функции copy. После того как слово будет выведено, надо обнулить фиксируемую длину слова (a = 0
).
Поскольку вывод слова "срабатывает", только когда встречается пробел, то первое слово строки (последнее из найденных при поиске с конца) выведено не будет, если перед ним нет пробела. Поэтому в программе за циклом предусмотрен отдельный вывод последней найденной подстроки.
Программа на языке Паскаль:
var
str: string;
len, i, a: byte;
begin
readln(str);
len := length(str);
a := 0;
for i:=len downto 1 do begin
if str[i] = ' ' then begin
write(copy(str, i+1, a), ' ');
a := 0;
end
else
a := a + 1;
end;
write(copy(str, i, a));
writeln;
end.
Пример работы программы:
one two three
three two one