Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.04.2009, 16:52   #1
Normand
 
Регистрация: 12.04.2009
Сообщений: 4
По умолчанию Обработка символьных данных

Задачка:
В символьной строке все знаки препинания перенести в конец предложения.

После полуторачасового копания в интернете, так и не понял как это можно осуществить... Надеюсь на вашу помощь.
Normand вне форума Ответить с цитированием
Старый 12.04.2009, 22:59   #2
Normand
 
Регистрация: 12.04.2009
Сообщений: 4
По умолчанию

Неужели никому не под силу? =)
Normand вне форума Ответить с цитированием
Старый 12.04.2009, 23:04   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Неужели никому не под силу? =)
А почему за вас кто-то должен что-то решать?

В решении задачи вам помогут delete и insert.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 13.04.2009, 11:40   #4
Normand
 
Регистрация: 12.04.2009
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
А почему за вас кто-то должен что-то решать?

В решении задачи вам помогут delete и insert.
Я и не говорю, что кто-то должен решить) я прошу помочь..
Я не понимаю сам ход решения. А с текстом программы думаю сам разберусь. За ценные идеи, буду благодарен)
Normand вне форума Ответить с цитированием
Старый 13.04.2009, 11:54   #5
OCTAGRAM
Oldschool geek
Форумчанин
 
Аватар для OCTAGRAM
 
Регистрация: 09.03.2009
Сообщений: 611
По умолчанию

Задом наперёд сканировать строку. Если символ пунктуации, то его надо присоединить слева к временной строке и удалить из исходной строки. После окончания цикла к исходной строке присоединяем справа временную строку, вот и всё.

Задом наперёд — это потому что после Delete сбиваются индексы, и надо следить, чтобы после Delete не происходил инкремент индекса, да и длина меняется. Перебирать символы задом наперёд — дешёвое и элегантное решение этой проблемы.
If you want to get to the top, you have to start at the bottom

http://pascal.net.ru/
OCTAGRAM вне форума Ответить с цитированием
Старый 13.04.2009, 12:22   #6
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

или
Код:
uses crt;
var s,s1,s2:string;
    i:integer;
BEGIN
clrscr;
s1:='';
s2:='';
writeln('Vvedite stroky');
readln(s);
for i:=1 to length(s) do
if s[i] in ['.',',','!','?'] then s1:=s1+s[i] else s2:=s2+s[i];
writeln(s2,s1);
readln;
END.
SERG1980 вне форума Ответить с цитированием
Старый 13.04.2009, 17:32   #7
Normand
 
Регистрация: 12.04.2009
Сообщений: 4
По умолчанию

OCTAGRAM, спасибо громаднешее
SERG1980, спасибо, хоть я и не совсем так себе это представлял... весьма красиво, если не получится воспользуюсь Вашим кодом =)
Normand вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка данных Myagkiy Microsoft Office Excel 2 01.04.2009 10:26
подкоректировать.обработка символьных данных и строк felmor Паскаль, Turbo Pascal, PascalABC.NET 1 25.12.2008 19:12
Файлы и обработка числовых и символьных последовательностей Xeon332 Общие вопросы C/C++ 5 23.11.2008 17:38