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

Задача

Вводится строка слов. Вывести слова в обратном порядке.

Решение

 

Описание переменных: 

  • str - строка;
  • len - длина строки;
  • a - длина очередного слова;
  • i - текущая позиция в строке.

Алгоритм решения задачи: 

Будем перебирать символы строки с конца и измерять количество подряд идущих непробельных символов. Если очередной символ - пробел, то следует вывести на экран отрезок строки от предыдущего с конца символа на длину подряд идущих непробельных символов. Это делается с помощью функции copy(). После того как слово будет выведено, надо обнулить фиксируемую длину слова.

Поскольку вывод слова "срабатывает", только когда встречается пробел, то первое слово строки (последнее из найденных при поиске с конца) выведено не будет, если перед ним нет пробела. Поэтому в программе за циклом предусмотрен отдельный вывод последней найденной подстроки.

Программа на языке Паскаль: 

 

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.

 

Пример работы программы:

11 22 33  44 55  
  55 44  33 22 11

 

Тема

Строки

Уровень

Комбинированные задачи

Теги

Комментарии

Добавить комментарий