Строки
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[i] 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[i] then что здесь вписать чтобы удалил его? |
То, что я написал в посте #7
|
Часовой пояс GMT +4, время: 11:57. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.