23.12.2010, 23:42 | #1 (permalink) |
Новичок
Регистрация: 20.12.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Строки
Вот программа в которой надо удалить символ *. Как мне это сделать? Еще в этой программе надо удвоить каждый символ отличный от *, до этого я еще не дошел, с удалением не разобрался.. Вот мой код, написанный не правильно 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. Последний раз редактировалось MrSTEP; 24.12.2010 в 00:09 Причина: Сменил заголовок темы. Модератор. |
23.12.2010, 23:42 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Пожалуйста, поищите в этих постах решение своей проблемы Строки в С Строки Строки Строки Строки Строки |
24.12.2010, 00:14 | #2 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Процедура удаляет один или несколько символов из строки. В аргументах сначала пишется имя строковой переменной, потом позиция, с которой нужно удалять, и затем количество удаляемых символов. Кстати, последние два параметра я мог перепутать местами, проверьте
|
24.12.2010, 00:20 | #4 (permalink) |
Новичок
Регистрация: 23.12.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
А можно просто удалить определенный символ? Не так как в операторе Delete, в которой нужно вписать позиции удаления "От" и "До". А вот просто хочу удалить Вот этот "*" символ в строке S.
|
24.12.2010, 00:22 | #5 (permalink) |
Новичок
Регистрация: 23.12.2010
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
У меня точно такое же задание
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
24.12.2010, 00:34 | #7 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Delete (а, i, 1);
где a - строка, i - номер позиции, откуда нужно удалять элемент. Стандартной функции для удаления определенного символа нет. |
24.12.2010, 00:40 | #8 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
Хотя, можно применить для этого связку из двух функций: первая - n:=pos(a, s1); - находит первое вхождение подстроки s1 в строку a (если такого нет, возвращает 0), и вторая - собственно delete (а, n, 1); если n>0
|
24.12.2010, 00:52 | #9 (permalink) |
Новичок
Регистрация: 20.12.2010
Сообщений: 6
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Все равно не пойму.. Этот оператор можно использовать если мы заранее знаем положение заданного символа. А если допустим ввести строку: hjkdfh*skjdfh*kjhsd*. Как мне сделать чтобы программа удаляла все "*" ?
Даже если делать с помощью цикла.. Допустим for i:=1 to length(a) do begin if '*' = a[i] then что здесь вписать чтобы удалил его? |
24.12.2010, 00:55 | #10 (permalink) |
一步一步地会到目的
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,939
Записей в дневнике: 10
Сказал(а) спасибо: 140
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28362
|
То, что я написал в посте #7
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|