Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
pro_100_den
23 / 23 / 2
Регистрация: 17.10.2011
Сообщений: 173
1

Преобразовать текст с учетом указанного значения символа #

28.11.2012, 14:38. Просмотров 491. Ответов 4
Метки нет (Все метки)

Дан текст, заканчивающийся точкой. Среди символов текста особую роль играет символ #, появление которого в тексте означает удаление предыдущего символа. Соответственно, k символов # подряд отменяют k предыдущих символов текста, если таковые имеются на текущей строке.
Требуется написать программу, преобразующую текст с учетом указанного значения символа #.

Добавлено через 48 минут
Вот нашел как делать, а реализовать не могу
Здесь логично использовать массив из символов char длиной в 200 символов. При последовательном чтении строки по одному символу этот символ следует добавлять в массив и увеличивать счетчик, показывающий на следующий элемент на 1. При появлении символа # указатель следует уменьшить на 1 (предварительно убедившись, что он больше 0). Когда мы доходим до конца строки, то последовательно выводим все символы нашего массива, переходим к следующей строке и устанавливаем указатель на последний символ на 1, а если на нашем пути попалась точка, то выводим содержимое массива и выходим из программы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2012, 14:38
Ответы с готовыми решениями:

Преобразовать данный текст по следующему правилу: если нет символа «*», то оставить текст без изменений, иначе вставить перед и после каждого символа
Преобразовать данный текст по следующему правилу: если нет символа «*», то...

Для указанного символа указать сколько раз он встречается в тексте.
Дана строка символов. Для указанного символа указать сколько раз он...

Выяснить, входят ли во введенный текст буквы с учетом регистра
Выяснить, входят ли во введенный текст буквы A, N, D(с учетом верхнего и...

Динамика: Напечатать текст, исправленный с учетом роли знака #
Я уже большую часть работы сделал, но никак не могу понять тему "динамическая...

Составьте программу вычисления значения указанного выражения
. Составьте программу вычисления значения выражения u=e^(x+y+z), где x=...

4
Ethereal
Нарушитель
4157 / 1768 / 228
Регистрация: 17.02.2013
Сообщений: 2,650
10.07.2018, 19:05 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
Const STR_IN : String = 'BlaBlaBla###PlimPlimPlim####.' ;
 
Var   ARR_OUT : Array [1..255] Of Char ;
      I, N : Integer ;
      C : Char ;
 
Begin
   N := 0 ;
   For I := 1 To Length(STR_IN) Do
     Begin
        C := STR_IN[I] ;
        If C = '#'
           Then
             Begin
                If N > 0 Then N := N - 1
             End
           Else
             Begin
                N := N + 1 ;
                ARR_OUT[N] := C ;
             End
     End ;
   (* Здесь N = кол-во символов в результирующей строке *)
   For I := 1 To N Do Write(ARR_OUT[I]) ;
   WriteLn
End.
0
alspay
1 / 1 / 1
Регистрация: 04.09.2013
Сообщений: 22
15.07.2018, 23:31 3
Зачем массив? Удаляем символ перед #, затем саму символ #.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var
  st: string;
 
begin
  read(st);
  
  while pos('#', st) <> 0 do
    begin
      delete(st, pos('#', st) - 1, 1);
      delete(st, pos('#', st), 1);
    end;
  
  write(st)
end.
0
Cyborg Drone
Модератор
5293 / 3171 / 2442
Регистрация: 17.08.2012
Сообщений: 10,186
17.07.2018, 00:44 4
alspay, неверное решение. В вопросе не говорится, что нужно удалять символ "#".
0
JuriiMW
1952 / 1051 / 1560
Регистрация: 10.12.2014
Сообщений: 3,879
18.07.2018, 08:16 5
alspay, добавлю к Cyborg Drone:
А что будет, если # будет первым символом в строке или количество # больше количества букв слева?
0
18.07.2018, 08:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.07.2018, 08:16

Дан текст. Если в тексте нет символа *, то оставить этот текст без изменения, иначе каждую из малую букву, перед первым вхождением *, заменить на 3
Задача 3 Программирование алгоритмов обработки текстовой Дан текст. Если в...

Вычислить значения функции y=(x-lg(1-x))/(sinx-cosx) с учетом области определения
с учетом области определения составьте программу вычисления значений функции...

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru