Помогите, пожалуйста, с задачей.
Пользователь с клавиатуры вводит некий текст, и он записывается в массив из char'ов (string по условию использовать нельзя). Среди литер текста особую роль играет знак # , появление которого означает отмену стоящей перед ним буквы, несколько знаков # означает отмену аналогичного числа букв. Создать массив заполненный текстом из первого массива с учетом роли этого знака. (ХЭ#E##НЕLO#LO = HELLO).
По моей задумке текст записывается в массив а, затем копируется в массив b. Циклом мы пробегаем по массиву b и как только доходим до # мы сдвигаем массив влево на 2 символа, тем самым удаляя # и стоящий перед ним символ.
Я написал код, но он не работает. Помогите разобраться, в чем ошибка. Заранее спасибо
Код:
const n = 80;
type symbols = array[1..n] of char;
var a,b,d:symbols; i,j:integer; c: char;
begin
writeln('Vvedite tekst: ');
i:=0;
repeat
read(c);
if (c<>chr(10))and(c<>chr(13)) then
begin
inc(i);
a[i]:=c;
end;
until (c=chr(10))or(i=N);
b:=a;
i:=1;
while (b[i]<>#0)and(i<=n) do
begin
if b[i]='#' then
begin
j:=i-1;
while (b[j]<>#0)and(i<=n) do
begin
b[j]:=a[j+2];
inc(j);
end;
i:=i-1;
end
else
inc(i);
end;
i:=1;
while (b[i]<>#0)and(i<=n) do
begin
write(b[i]);
inc(i);
end;
readln;
end.
Примечание:
2 T-Rrexx:
Если в тексте больше чем один раз встречается #, независимо от того идут ли они подряд или нет.
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.