Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Work Group
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 49
1

строки и подстроки

10.11.2009, 14:17. Просмотров 817. Ответов 7
Метки нет (Все метки)

тут задачка такая появилась...не могу с нею сделать...оч прошу помощи...заранее спасибо

создайте программу,находящую позицию N-ого от начала строки вхождения подстроки в строку...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.11.2009, 14:17
Ответы с готовыми решениями:

Выделить из строки подстроки, не содержащих знаков: больше, меньше, равно. Каждая выделенная подстрока должна быть выведена с новой строки.
Ребят помогите,зачет завтра , а программы очень нужны) заранее благодарен! ...

Удалить из строки S все подстроки, совпадающие с S0
Очень срочно нужно,завтра контрольная.помогите пожалуйста.Даны строки S и S0....

Удалить из строки все вхождения заданной подстроки
Даны подстрока и строка. Удалить из строки все вхождения заданной подстроки ...

Удалить из строки S1 первый, последний и все подстроки, совпадающие с S2...
Даны две строки: S1 и S2. Удалить из строки S1 первый, последний и все...

Обработка строки: удаление подстроки, подсчет заданных символов
Вводится строчка. а)Удалить все "РРР" б)определить сколько раз в строчке...

7
yanyk1n
4331 / 1463 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
10.11.2009, 14:21 2
есть такая волшебная функция: pos(podstroka,stroka), которая возвращает номер позиции или 0, если подстрока не входит в строку
0
Awful
12 / 12 / 3
Регистрация: 09.11.2009
Сообщений: 65
10.11.2009, 14:23 3
ну это то понятно, но ведь ему нужно не первое вхождение, а n-noe
0
Work Group
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 49
10.11.2009, 14:24  [ТС] 4
вот вот....вот в чём и загвоздка...
0
yanyk1n
4331 / 1463 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
10.11.2009, 14:35 5
ну тогда:

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses crt;
var st,p:string;
i,n,nn,count:integer;
begin
 clrscr;
 write('Строка -> ');
 readln(st);
 write('Подстрока ->');
 readln(p);
 write('N ->');
 readln(n);
 count:=0;
 for i:=1 to length(st)-length(p)+1 do
 begin
  if copy(st,i,length(p))=p then
  begin
   inc(count);
   nn:=i;
  end;
  if count=n then break;
 end;
 if count=n then writeln(nn) else write('0');
 readln;
end.
0
equinoxe
1 / 1 / 0
Регистрация: 10.11.2009
Сообщений: 4
10.11.2009, 14:40 6
мда... Для этого существуют Z-функции и префикс-функции, а также построенный на них алгоритм Кнута-Морриса-Пратта. Функция copy работает за O(n), используя при этом O(n) памяти, функция pos вообще использует наивный метод.
0
yanyk1n
4331 / 1463 / 680
Регистрация: 12.03.2009
Сообщений: 5,310
10.11.2009, 14:48 7
equinoxe, конечно можно и таким образом написать, но на это уйдёт слишком много времени, да и не каждый поймёт структуру кода(да и пожалуй сами термины z-функции, префикс-функции и так далее). Поэтому лучше написать и банально, но просто и понятно, тем более скорее именно такое решение подразумевается под конечным решением поставленной задачи, а оптимизация - это уже задача другого плана.
1
Work Group
0 / 0 / 0
Регистрация: 10.11.2009
Сообщений: 49
10.11.2009, 15:26  [ТС] 8
спасибо большое...но всё же как можно обойтись без copy?...
только начал всё это осваивать,и особого представления не имею...
0
10.11.2009, 15:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.11.2009, 15:26

Удалить из строки S1 первую\последнюю\все подстроки, совпадающие с S2
Даны две строки:S1 и S2. Удалить из строки S1 первую\последнюю\все подстроки,...

Заменить все вхождения подстроки Str1 на подстроку Str2 (подстроки вводятся с клавиатуры)
Заменить все вхождения подстроки Str l на подстроку Str2 (подстроки вводятся с...

Выделить из строки подстроки, разделённые одной или несколькими запятыми
1. Сформировать массив, содержащий номера строк матрицы, имеющих отрицательную...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru