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

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

09.12.2020, 12:25. Показов 1883. Ответов 4

У меня возникла небольшая проблема, задание:
Дан текст, слова которого отделяются друг от друга пробелами. Поменять местами первое и последнее слова, если в тексте встречаются лишние пробелы. В противном случае текст оставить без изменения.
Можете написать как именно менять местами первое и последнее слово?

Добавлено через 20 минут
Спасибо за внимание, уже разобрался.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.12.2020, 12:25
Ответы с готовыми решениями:

Поменять местами первое и последнее слово
Помогите написать программу. "Поменяйте местами первое и последнее слово" (ввод строк...

Поменять местами в строке первое и последнее слова
Поменять местами в строке первое и последнее слова. Считать, что слова отделены друг от друга одним...

Составьте программу, которая меняет местами первое и последнее слово в строке
Составьте программу, которая меняет местами первое и последнее слово в строке: а) в строке "Минск...

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

4
3405 / 1824 / 489
Регистрация: 28.02.2015
Сообщений: 3,699
09.12.2020, 12:55 2
Цитата Сообщение от aelris Посмотреть сообщение
Спасибо за внимание, уже разобрался.
4.10 Если вопрос был решен вами самостоятельно, отпишите об этом в своей теме - есть и другие люди, которые столкнутся с той же проблемой, и им поможет ваш ответ
Покажите Ваше решение
1
1 / 1 / 0
Регистрация: 27.10.2020
Сообщений: 23
09.12.2020, 13:10  [ТС] 3
Поменял местами вот так, если есть другие способы - жду.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Var s,s1,s2:string;
    i:byte;
Begin
    write('Введите строку -> ');
    readln(s);
    
    s1:=Copy(s,1,Pos(' ',s)-1);
    Delete(s,1,Pos(' ',s));
    s2:='';
    For i:=Length(s) downto 1 do
       if s[i]<>' ' then s2:=s[i]+s2
       else break;
    Delete(s,i,Length(s2));
    s:=s2+' '+s+' '+s1;
    
    writeln('Полученная строка = ',s);
    readln;
End.
P.S. Код недоработан, в ближайшее время буду править
1
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7517 / 4382 / 2780
Регистрация: 22.11.2013
Сообщений: 12,542
Записей в блоге: 1
10.12.2020, 13:36 4
Лучший ответ Сообщение было отмечено aelris как решение

Решение

Поменять можно, например, так:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
var
  s: String;
  i, b1, e1, b2, e2: Integer;
begin
  Write('Строка: '); ReadLn(s);
 
  i:=1;
  while (i<=Length(s)) and (s[i]=' ') do Inc(i);
  b1:=i;
  while (i<=Length(s)) and (s[i]<>' ') do Inc(i);
  e1:=i;
 
  i:=Length(s);
  while (i>0) and (s[i]=' ') do Dec(i);
  e2:=i+1;
  while (i>0) and (s[i]<>' ') do Dec(i);
  b2:=i+1;
 
  if e1<b2
  then WriteLn(Copy(s,1,b1-1)+Copy(s,b2,e2-b2)+Copy(s,e1,b2-e1)+Copy(s,b1,e1-b1)+Copy(s,e2,Length(s)))
  else WriteLn('Нет двух слов');
end.
Добавлено через 2 минуты
Наличие лишних пробелов можно определить, например, так:
Pascal
  if (s[1]=' ') or (s[Length(s)]=' ') or (Pos({два пробела}'  ',s)>0) then
1
1 / 1 / 0
Регистрация: 27.10.2020
Сообщений: 23
14.12.2020, 18:31  [ТС] 5
Спасибо, ваше решение даже лучше моего старого.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.12.2020, 18:31
Помогаю со студенческими работами здесь

Поменять местами первое и третье слово
Дано предложение. Поменять местами первое и третье слово. Определить их длину.

Поменять местами первое и третье слово
Дано предложение. Поменять местами первое и третье слово. Определить их длину.

Переставить местами слово с минимальной длиной и последнее слово
Дана строка символов, содержащая не менее 6 слов разной длины. Переставить местами слово с...

Напечатать отдельными строками первое и последнее слово строки
4. Ввести с клавиатуры строку символов. Напечатать отдельными строками первое и последнее слово. ...

Распечатать самое длинное слово (последнее) и самое короткое слово (первое)
Распечатать самое длинное слово (последнее) и самое короткое слово (первое).

Разработать процедуру которая в строке меняет первое и последнее слово
разработать процедуру которая в строке меняет первое и последнее слово Помогите...


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

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

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