|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.03.2010, 00:26 | #1 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 83
|
Удалить из строкового значения все вхождения заданного символа. Delphi
Задача такая:
Удалить из строкового значения все вхождения заданного символа. Нельзя: в задаче не использовать функции и процедуры для выполнения операций над строкой, а рассматривать строку как массив символов |
07.03.2010, 05:56 | #2 |
Любопытная Вредина
Участник клуба
Регистрация: 19.06.2009
Сообщений: 1,285
|
Код:
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 07.03.2010 в 11:48. |
07.03.2010, 08:29 | #3 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Так нельзя. Нельзя символу (а каждый элемент строки - это символ, т.к. строка это по сути array[0..255] of char) присвоить пустую строчку! p.s. я когда увидел такой код, я просто обалдел! Если это сработало, это было просто гениально! Saka, если допускается, то самый простой способ решения данной задачи - использовать дополнительную (временную) строчку, куда и переносить все элементы исходной строки, кроме равных символу C если же дополнительную строчку нельзя использовать, тогда чуть сложнее: надо в цикле идти по строке, а если текущий элемент строки совпал с символом C, то сдвигать все последущие (до конца строки) символы на его место. |
|
07.03.2010, 11:19 | #4 |
Пользователь
Регистрация: 01.11.2009
Сообщений: 99
|
Код:
|
07.03.2010, 12:01 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
|
|
07.03.2010, 12:13 | #6 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Строка в Дельфи это по сути указатель на строку, а не строка. И если явно не объявлено, то размер строки зависит от задачи - либо 255 символов, либо последовательность символов длиной до 4Гб. Поэтому если перед нами указатель на строку, то s[i]:='' использовать можно, поскольку в Дельфи строка это поток байтов, а не строка оканчивающаяся нулем, иными словами строка может содержать любые символы от 0 до 255 (в отличие от С).
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
07.03.2010, 20:12 | #7 | |
Пользователь
Регистрация: 04.12.2009
Сообщений: 83
|
Цитата:
|
|
07.03.2010, 23:14 | #8 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
Это выражение выдаёт ошибку на этапе компиляции. Цитата:
Первый (через дополнительную строчку) устраивает? |
||
07.03.2010, 23:40 | #9 |
Пользователь
Регистрация: 04.12.2009
Сообщений: 83
|
|
07.03.2010, 23:52 | #10 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Определить первое слово, начинающееся с заданного символа. | Нездешний | Помощь студентам | 11 | 18.10.2009 16:51 |
функция в delphi возвращающая код ascii заданного символа | dollemika | Помощь студентам | 1 | 29.04.2009 20:03 |
преобразование строкового значения в числовое (assembler) | MISHA13 | Помощь студентам | 2 | 27.01.2009 10:37 |
имя может встречаться несколько раз, как используя pos найти все вхождения имени в строку | milton | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 09.12.2008 22:34 |
Удалить из массива(одномерного) все повторяющиеся числа(Delphi) | Махор | Помощь студентам | 4 | 29.11.2007 23:25 |