Задача на строки

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill

Ответить
Аватара пользователя
litis
Сообщения: 4
Зарегистрирован: 15 апр 2008, 20:21
Откуда: Кривой Рог
Контактная информация:

Помогите, пожалуйста решить эту задачу, заранее спасибо!
Задан текст, преобразовать его, удалив все запятые, предшествующие первой точке и заменив знаком «+» все цифры 3, встречающиеся после первой точки.
Serge_Bliznykov
Сообщения: 375
Зарегистрирован: 31 авг 2007, 03:06

проверить наличие знака в тексте:
if Pos('.', MyString)>0 then

выделить подстроку от начала до первой точки включительно:
S1 := Copy(MyString,1, Pos('.',MyString));
удалить все запятые в строке S1
while Pos(',',S1)>0 do
Delete(S1,Pos(',',S1),1);

выделить подстроку от точки (не включая её) до конца строки:
S2 := Copy(MyString,Pos('.',MyString)+1,255);

заменить в подстроке S2 все + на цифру 3:
for i:=1 to Length(S2) do
if S2 = '3' then S2:='+';
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

Ужас...
Две новых темы + сообщение в старой...
Остается только эта тема, остальное в мусор.
Ни что так не ограничивает фантазию программиста, как компилятор...
Аватара пользователя
un4-funeral
Сообщения: 60
Зарегистрирован: 18 апр 2008, 23:40
Контактная информация:

Serge_Bliznykov,
S2 := Copy(MyString,Pos('.',MyString)+1,255);
а не луше воть?
S2 := Copy(MyString,Pos('.',MyString)+1,length(S2));
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Неа. У нас же S2 не инициализирована до этого оператора, т.е. ее длина скорее всего 0. Ну и после копирования 0 символов получим опять пустую строку.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
un4-funeral
Сообщения: 60
Зарегистрирован: 18 апр 2008, 23:40
Контактная информация:

Хыиуду писал(а):Неа. У нас же S2 не инициализирована до этого оператора, т.е. ее длина скорее всего 0. Ну и после копирования 0 символов получим опять пустую строку.


а если длина MyString меньше 255 будет?
MOTOCoder
Сообщения: 548
Зарегистрирован: 14 янв 2008, 20:27
Откуда: Россия, Псков

&quot писал(а):а если длина MyString меньше 255 будет?
Тогда просто скопируется вся строка, ошибки не будет.
Ни что так не ограничивает фантазию программиста, как компилятор...
Аватара пользователя
un4-funeral
Сообщения: 60
Зарегистрирован: 18 апр 2008, 23:40
Контактная информация:

MOTOCoder писал(а):Тогда просто скопируется вся строка, ошибки не будет.


да ошибки то нет
прост я думал, что в конце пустые символы вставились бы
ан нет...оказалось норм =)
Ответить