• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Строки

  • Автор темы Автор темы dima112
  • Дата начала Дата начала

dima112

Ученик
Регистрация
20 Дек 2010
Сообщения
6
Реакции
0
Баллы
0
Строки

Pascal ABC

Вот программа в которой надо удалить символ *. Как мне это сделать?
Еще в этой программе надо удвоить каждый символ отличный от *, до этого я еще не дошел, с удалением не разобрался..
Вот мой код, написанный не правильно

program qq;
uses crt;
var a:string;
i:byte;
n:integer;
begin
writeln('Введите строку');
readln(a);
i:=1;
for i:=1 to length(a) do
begin
if '*' = a then
begin
delete (что здесь писать?) ;
end;
writeln(a);
end.
 
Последнее редактирование модератором:
Процедура удаляет один или несколько символов из строки. В аргументах сначала пишется имя строковой переменной, потом позиция, с которой нужно удалять, и затем количество удаляемых символов. Кстати, последние два параметра я мог перепутать местами, проверьте
 
А можно пример самой процедуры? Чтобы поняла..
 
Последнее редактирование:
А можно просто удалить определенный символ? Не так как в операторе Delete, в которой нужно вписать позиции удаления "От" и "До". А вот просто хочу удалить Вот этот "*" символ в строке S.
 
У меня точно такое же задание
 
Да, можно саму процедуру показать?
 
Delete (а, i, 1);
где a - строка, i - номер позиции, откуда нужно удалять элемент.

Стандартной функции для удаления определенного символа нет.
 
Хотя, можно применить для этого связку из двух функций: первая - n:=pos(a, s1); - находит первое вхождение подстроки s1 в строку a (если такого нет, возвращает 0), и вторая - собственно delete (а, n, 1); если n>0
 
Все равно не пойму.. Этот оператор можно использовать если мы заранее знаем положение заданного символа. А если допустим ввести строку: hjkdfh*skjdfh*kjhsd*. Как мне сделать чтобы программа удаляла все "*" ?

Даже если делать с помощью цикла.. Допустим

for i:=1 to length(a) do
begin
if '*' = a then что здесь вписать чтобы удалил его?
 
То, что я написал в посте #7
 
И вообще, на будущее, лучше сравнивать a='*', а не наоборот, изменяемый элемент на первое место
 
Назад
Сверху