0 / 0 / 0
Регистрация: 28.01.2019
Сообщений: 2
1

Вывести в обратном порядке слова строки, оставляя между ними по одному разделительному пробелу

28.01.2019, 21:09. Показов 1610. Ответов 3
Метки нет (Все метки)

В текстовом файле дана строка, состоящая из заглавных английских букв и пробелов. Непрерывная последовательность букв называется словом. Слова разделяются друг от друга хотя бы одним пробелом. Вывести в обратном порядке слова строки, оставляя между ними по одному разделительному пробелу. Начальные и конечные пробелы не допускаются.





Входные данные:


В текстовом файле задана строка символов, длиной не более 255.

Пример входного файла (input.txt):
SVPWOWLQQ LHXBZH MUVNMO

Выходные данные:

Создать текстовый файл, содержащий строку, состоящую из слов.

Пример выходного файла (output.txt):
MUVNMO LHXBZH SVPWOWLQQ
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.01.2019, 21:09
Ответы с готовыми решениями:

Удалить повторяющиеся пробелы между отдельными словами строки (оставляя по одному пробелу)
Введите предложение, слова в котором разделены пробелами и в конце которого стоит точка. Удалите...

Удалить из строки лишние пробелы, оставляя между словами только по одному пробелу
Удалить из строки лишние пробелы, оставляя между словами только по одному пробелу

Откорректировать файл, удаляя пустые строки, пробелы в конце и вначале строк и оставляя между словами по одному пробелу
Помогите пожалуйста. Задание. Дан текстовый файл Т. Откорректировать его, удаляя пустые строки,...

Откорректировать файл, удаляя пустые строки, пробелы в конце и вначале строк и оставляя между словами по одному пробелу
Дан текстовый файл Т. Откорректировать его, удаляя пустые строки, пробелы в конце и вначале строк и...

3
57 / 40 / 21
Регистрация: 26.09.2018
Сообщений: 215
28.01.2019, 22:41 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var f : text;
    a : array [1..255] of string;
    s : string;
    i, j : integer;
begin
    assign(f,'input.txt');
    reset(f);
    readln(f,s);
    close(f);
    while(pos('  ', s) <> 0)do
        delete(s, pos('  ',s), 1);
    i := 0;
    s := s + ' ';
    while(length(s) > 0)do
    begin
       i := i + 1;
       a[i] := copy(s, 1, pos(' ', s) - 1);
       delete(s, 1, pos(' ', s));
    end;
    assign(f, 'output.txt');
    rewrite(f);
    for j := i downto 1 do
    begin
       write(f, a[j]);
       if j > 1 then
           write(f, ' ');
    end;
    writeln(f);
    close(f);
    readln();
end.
0
Почетный модератор
64279 / 47578 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
29.01.2019, 09:38 3
Лучший ответ Сообщение было отмечено LaVINS как решение

Решение

По моему проще так.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var f:text;
    s,s1:string;
    i,j,k:integer;
begin
assign(f,'input.txt');
reset(f);
readln(f,s);
close(f);
assign(f,'output.txt');
rewrite(f);
s:=s+' ';
i:=length(s)-1;
k:=0;
while i>0 do
if(s[i]<>' ')and(s[i+1]=' ') then
 begin
  s1:='';
  j:=i;
  inc(k);
  while(j>0)and(s[j]<>' ') do
   begin
    s1:=s[j]+s1;
    j:=j-1;
   end;
  if k=1 then write(f,s1)else write(f,' ',s1);
  i:=i-length(s1);
 end
else dec(i);
close(f)
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32489 / 20975 / 8115
Регистрация: 22.10.2011
Сообщений: 36,249
Записей в блоге: 7
29.01.2019, 10:12 4
Проще - вот так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{$mode objfpc}
uses Classes, StrUtils;
var 
  s : string;
  i : integer;
begin
  with TStringList.Create do
  try
    LoadFromFile('input.txt');
 
    s := Text;
    Clear;
    Delimiter := ' ';
 
    for i := WordCount(s, StdWordDelims) downto 1 do 
      Add(ExtractWord(i, s, StdWordDelims));
    Text := DelimitedText;
    SaveToFile('output.txt');
  finally
    Free;  
  end;
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2019, 10:12
Помогаю со студенческими работами здесь

Откорректировать файл, удаляя пустые строки, пробелы в конце и вначале строк и оставляя между словами по одному пробелу
Дан текстовый файл Т. Откорректировать его, удаляя пустые строки, пробелы в конце и вначале строк и...

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

Отредактировать предложение, удаляя из него лишние пробелы, оставляя по одному пробелу между словами
Отредактировать предложение, удаляя из него лишние пробелы, оставляя по одному пробелу между...

Отредактировать предложение, удаляя из него лишние пробелы, оставляя только по одному пробелу между словами
Отредактировать предложение, удаляя из него лишние пробелы, оставляя только по одному пробелу между...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru