С Новым годом! Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.58/40: Рейтинг темы: голосов - 40, средняя оценка - 4.58
1 / 1 / 0
Регистрация: 07.03.2016
Сообщений: 20

Заменить в строке все пробелы на восклицательные знаки

26.04.2016, 22:45. Показов 7493. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
{С клавиатуры вводится строка.
Заменить в ней все пробелы на восклицательные знаки}

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 procedure vvod(s: string; var a: string);
begin
  Writeln(s);
  Readln(a);
end;
 Var st, st1, st2 :string;
  Begin
   vvod('Введите строку с точкой в конце',st);
   repeat
   st1:='!';
   insert(st, st1, pos(' ',st)-1);
   st2:=copy(st,1,pos('!',st))+st2;
   delete(st,1,pos('!',st));
   until pos('.',st);
  Writeln('Полученная строка',st2);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.04.2016, 22:45
Ответы с готовыми решениями:

Заменить восклицательные знаки ('!') на все цифры
Кто нибудь может помочь? Пожаалуйста). Пользователь вводит цифры (максимум 9 ) и восклицательные знаки (например: '9!766!'). Заменить...

Заменить в строке все восклицательные знаки точками
Дана строка S. Создать новые строки из строки S: а) заменить все восклицательные знаки точками; б) заменить каждую точку многоточием...

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

8
318 / 208 / 162
Регистрация: 08.12.2015
Сообщений: 863
26.04.2016, 22:58
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Точка для чего?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
procedure vvod(s: string; var a: string);
begin
  Writeln(s);
  Readln(a);
end;
var
  st, st1: string;
 
begin
  vvod('Введите строку с точкой в конце', st);
  repeat    
    insert('!', st, pos(' ', st) );    
    delete(st,  pos(' ', st),1);
  until pos(' ', st)=0;
  Writeln('Полученная строка: ', st);
end.
0
1 / 1 / 0
Регистрация: 07.03.2016
Сообщений: 20
26.04.2016, 23:06  [ТС]
Спасибо огромное!
0
14 / 14 / 11
Регистрация: 20.03.2016
Сообщений: 168
26.04.2016, 23:22
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

capricornus CF, а не проще было написать так, короче и понятнее:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure vvod(s: string; var a: string);
begin
  Write(s);
  Readln(a);
end;
var
  st : string;
 
begin
  vvod('Введите строку с точкой в конце', st);
  st := st.Replace(' ','!');
  Writeln('Полученная строка: ', st);
end.
или еще проще:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
var
  st : string;
 
begin
 
  Writeln(' Введите строку с точкой в конце(или без): ');
  Readln(st);
 
  st := st.Replace(' ','!');
  Writeln(' Полученная строка: ', st);
 
end.
0
1 / 1 / 0
Регистрация: 07.03.2016
Сообщений: 20
26.04.2016, 23:39  [ТС]
Спасибо!
0
 Аватар для JuriiMW
5095 / 2661 / 2355
Регистрация: 10.12.2014
Сообщений: 10,059
27.04.2016, 04:48
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Ещё проще вот так:
Pascal
1
2
3
begin
  WriteLn('Полученная строка: ', ReadLnString('Введите строку:').Replace(' ', '!'));
end.
0
27.04.2016, 07:16

Не по теме:

Цитата Сообщение от Chilipalmer777 Посмотреть сообщение
так, короче и понятнее
Кому-то , вероятно, понятнее, но не новичкам. Я исхожу из того, что если человек привел код, то, вероятно, он его либо писал либо искал сам, как минимум. Исправив его код - возможно, я помогу ему понять ошибки его кода.

0
Эксперт Pascal/Delphi
2388 / 1300 / 1492
Регистрация: 29.08.2014
Сообщений: 4,665
27.04.2016, 07:42
без replace через while, но медленно.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure vvod(s: string; var a: string);
begin
  Writeln(s);
  Readln(a);
end;
var
  st: string;
 
begin
  vvod('Введите строку ', st);
  while pos(' ',st)>0 do st[pos(' ',st)]:='!';/пока есть пробел в строке менять его на !
  Writeln('Полученная строка: ', st);
end.
самый быстрый -
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
procedure vvod(s: string; var a: string);
begin
  Writeln(s);
  Readln(a);
end;
var
  st: string;
 
begin
  vvod('Введите строку ', st);
  for i:integer:=1 to length(st)do if st[i]=' ' then st[i]:='!';
  Writeln('Полученная строка: ', st);
end.
0
1 / 1 / 0
Регистрация: 07.03.2016
Сообщений: 20
27.04.2016, 21:02  [ТС]
Всем большое спасибо! Программа работает. В принципе хватило первого ответа. За все остальные примеры решения также огромное спасибо!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.04.2016, 21:02
Помогаю со студенческими работами здесь

Заменить в строке все восклицательные знаки точками
Осталась последняя задачка. Помогите написать код: Дана строка символов. Составьте программу замены в этой строке всех восклицательных...

Заменить в строке все восклицательные знаки точками до первого пробела
Дана строка символов. Замените в ней все восклицательные знаки точками до первого пробела.

Заменить в строке символов все восклицательные знаки точками до первого пробела
Дана строка символов. Замените в ней все восклицательные знаки точками до первого пробела.

Заменить в строке все точки на восклицательные знаки. Подсчитать количество замен
Помогите пожалуйста полному профану!

Заменить в символьной строке все восклицательные знаки на частное двух целых чисел
Помогите написать программу, очень нужно. :help: Заменить в символьной строке все восклицательные знаки на частное двух целых чисел...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru