Поменять слова местами

Задача

Поменять местами слова в строках, состоящих из двух слов.

Решение

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

s – массив введенных строк;
f_word, s_word – первое и второе слово в каждой строке;
k – позиция пробела-разделителя слов в строке.

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

  1. Считывается очередная строка в текущий элемент массива.
  2. Определяется позиция пробела с помощью функции pos.
  3. В переменную f_word копируется часть строки с первого символа до пробела.
  4. В переменную s_word копируется часть строки от пробела (не включая его) до ее конца.
  5. В текущий элемент массива записывается строка, состоящая сначала из второго слова, пробела и затем первого слова.

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

var
    s: array[1..5] of string;
    f_word, s_word: string;
    k,i: byte;
begin
    writeln('Введите пять строк с двумя словами в каждой.');
    for i:=1 to 5 do begin
        readln(s[i]);
        k:= pos(' ',s[i]);
        f_word:= copy(s[i],1,k-1);
        s_word:= copy(s[i],k+1,length(s[i]));
        s[i]:= concat(s_word,' ',f_word)
    end;
    for i:=1 to 5 do
        writeln(s[i]);
readln
end.

Тема

Строки

Уровень

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

Теги

Комментарии

Ответ на от Гость

var
    s,s2: string;
    nomer, i: integer;
begin
    s := 'one two';
    for i:=1 to length(s) do
        if s[i] = ' ' then begin {к символам строки можно обращаться как к элементам массива}
            nomer:=i;
            break
        end;
    s2 := copy(s,1,nomer-1); {Надо избавиться от пробела в конце...}
    delete(s,1,nomer);
    s := s + ' ' + s2;
    writeln(s);
    writeln(length(s));
 
readln
end.

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