|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.03.2009, 17:40 | #1 |
Пользователь
Регистрация: 09.03.2009
Сообщений: 63
|
Работа со строками
Задача вроде такая простая, но почему то не работает Помогите пожайлуйста, кто может!
Дана символьная строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от * Например: ga*4f*d и должно получится ggaa44ffdd... Только чтобы строковая переменная была одна! Код:
|
17.03.2009, 18:08 | #2 |
Участник клуба
Регистрация: 16.03.2009
Сообщений: 1,013
|
Код:
Uguu~
Последний раз редактировалось __STDC__; 17.03.2009 в 18:20. |
17.03.2009, 18:19 | #3 |
Пользователь
Регистрация: 09.03.2009
Сообщений: 63
|
__STDC__ спасибо тебе огромное только у мя вопрос а поч моя версия не работает?
|
17.03.2009, 18:22 | #4 |
Участник клуба
Регистрация: 16.03.2009
Сообщений: 1,013
|
Ну у тебя во-первых эл-ты массива исходного теряются при замене.. тут Insert надо.. а во-вторых непонятен сам принцип... зачем например в
s[i+i-1]:=s[i]; вот такой индекс i+i-1? 2i-1 получается.. странно... Так что я не вникал особо, просто переписал =)
Uguu~
|
17.03.2009, 18:32 | #5 |
Пользователь
Регистрация: 09.03.2009
Сообщений: 63
|
я те не буду свой принцип объяснять, как раз там ничего не теряется просто у мя он строку не увеличивал по размеру...
|
17.03.2009, 18:46 | #6 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
Код:
то, что синем работает непонятно - два раза заменяете одним и тем же символом, теряя остальные символы строки, причем разрываете строку, оставляя место между length(s) и s[i+i-1] не заполненным, поэтому программа не работает; да и таким способом строку вы увеличиваете, в любом случае сторока быдет увеличиваться, если только просто не выводить на экран |
17.03.2009, 18:51 | #7 |
Участник клуба
Регистрация: 16.03.2009
Сообщений: 1,013
|
он увеличивает длину строки вдвое начиная заполнять с конца... вроде бы..
Uguu~
|
17.03.2009, 18:54 | #8 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
начиная с конца он оставляет неизвестными ячейки для символов, которые находятся между концом и началом, ну я уж так на более понятном языке
|
17.03.2009, 19:01 | #9 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
Лучше использовать этот тест: ga*4f**d
здесь две * подряд |
17.03.2009, 19:03 | #10 |
Участник клуба
Регистрация: 16.03.2009
Сообщений: 1,013
|
Какая разница? С удалением звезд нет проблем...
если исправить to на downto, как было справедливо замечено выше, то работать она все равно не будет... можно это проверить, воспользовавшись отладчиком. Получим такое Код:
Uguu~
Последний раз редактировалось __STDC__; 17.03.2009 в 19:08. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа со строками | eR- | Помощь студентам | 2 | 23.02.2009 15:11 |
Работа со строками | pant | Помощь студентам | 2 | 30.12.2008 17:12 |
Работа с строками | Technolog | Microsoft Office Excel | 2 | 17.12.2008 09:58 |
С, работа со строками | Надюха | Помощь студентам | 2 | 29.05.2008 13:07 |
Работа со строками . | Cveto4eg | Помощь студентам | 11 | 26.05.2008 13:36 |