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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2008, 22:50   #1
ТРОЯН=)
Пользователь
 
Регистрация: 06.12.2008
Сообщений: 58
Печаль Дурацкие строки

Люди помогите плиз написать задачу,ну или подскажите как, а то я замучился уже((
Даны две строки S1 и S2.Удалить из строки S1 первую,последнюю,все подстроки совпадающие с S2.Если таких подстрок нет то вывести S1 без изменений.
ТРОЯН=) вне форума Ответить с цитированием
Старый 07.12.2008, 00:04   #2
Vedun
Пользователь
 
Аватар для Vedun
 
Регистрация: 05.05.2008
Сообщений: 22
По умолчанию

По условию задачи получается,что даны две строковые переменные:
S1:string[n];
S2:string[k];
Sresult:string;
n и k,в данном случае длинны строк.Sresult- резулитирующая,конечная строка.
Задача решается просто.Необходимы две переменных типа integer (к примеру i и j).
Код:
For i:=1 to n do
for j:=1 to k do
 if S1[i]=S2[j] then Sresult[i]:='0';
if S1<>Sresult then  \\проверяется,изменилась ли строка
 begin
  if Sresult[1]=S1[1] then Sresult[1]:='0'; \\убирается первый и последний
  if Sresult[n]=S1[n] then Sresult[n]:='0'; \\элемент
 end;
d:=1;
For i:=1 to n do
 If Sresult[i]<>'0' then
  begin
   Sresult[d]:=Sresult[i]; \\зап.конечный вариант строки без нулей
   d:=d+1;
  end;
Это приблизительное решение задачи. Конечно нужно еще доработатать и не делать просто copy\past (работать не будет)...Вопросы?
C#, MySQL, F*cking, Rock'n'roll and smile.
Vedun вне форума Ответить с цитированием
Старый 07.12.2008, 12:07   #3
Викдон
Форумчанин
 
Аватар для Викдон
 
Регистрация: 11.11.2008
Сообщений: 161
По умолчанию

Код:
var s1,s2:string;
       i:integer;
begin
 write('Введите первую строку');
 readln(s1);
 write('Введите вторую строку');
 readln(s2);

  for i:=1 to length(s1) do
     if pos(s2,s1)<>0 then
       delete(s1,pos(s2,s1),length(s2));

   write('Итог: ',s1);
   readln;

end.
Викдон вне форума Ответить с цитированием
Старый 07.12.2008, 21:14   #4
ТРОЯН=)
Пользователь
 
Регистрация: 06.12.2008
Сообщений: 58
По умолчанию

Спасиб,за помощь только первую задачу я так додумать не смог!!((
А втрорая удаляет строки только если они полностью идентичны!Но всё равно спасибо!
ТРОЯН=) вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27
строки в си! GTP_edition Фриланс 5 05.05.2008 01:06
Строки Zenit10 Помощь студентам 10 18.01.2008 15:49
Строки furian Общие вопросы C/C++ 15 19.12.2007 20:15
как вывести строку поочередно сначала первая буква первой строки потом первая буква второй строки и т.д. vitalik007 Помощь студентам 1 25.09.2007 20:45