![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
Eichhorn |
![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 50 Пол: Женский Реальное имя: Сафиуллина Алёна Репутация: ![]() ![]() ![]() |
При запуске программы пользователь вводит две строки, длины которых ограничены 1024. Вывести индексы всех вхождений второй строки в первую, используя Прямой алгоритм.
Не могу понять как это впринципе осуществляется. Сам порядок решения. Подскажите, пожалуйста. -------------------- Жизнь похожа на собачью упряжку: если не идёшь впереди, то всё время видишь одно и то же...
|
Lapp |
![]()
Сообщение
#2
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вывести индексы всех вхождений второй строки в первую, используя Прямой алгоритм. Не могу понять как это впринципе осуществляется. Сам порядок решения. Ну, как-то вот так.. Я, правда, не знаю, что такое "прямой алгоритм". Думаю, что это он и есть )). Если ошибаюсь - поправьте, плз. l= strlen(c2); исправлено ) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
IUnknown |
![]()
Сообщение
#3
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Я бы, наверное, сделал вот так:
char *pc1 = c1; ![]() Сообщение отредактировано: IUnknown - 3.06.2011 10:37 |
Lapp |
![]()
Сообщение
#4
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
![]() Спасибо, исправляю.. )) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
Eichhorn |
![]()
Сообщение
#5
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 50 Пол: Женский Реальное имя: Сафиуллина Алёна Репутация: ![]() ![]() ![]() |
Вот такой код получается. Но не считается певрое вхождение, когда индекс равен нулю.. И можно пояснить, что значит рс1 и рс2? -------------------- Жизнь похожа на собачью упряжку: если не идёшь впереди, то всё время видишь одно и то же...
|
IUnknown |
![]()
Сообщение
#6
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Говорила мне мама - не пиши на С, проблемы на пустом месте возникают. pc1 надо увеличивать в другом месте:
while(*pc1), тогда должно сработать. Проверь, у меня сейчас компилятора С-шного под рукой нет... Цитата И можно пояснить, что значит рс1 и рс2? Можно, это временные указатели на строку. Чтобы сравнивать подстроки между собой - можно воспользоваться тем способом, как это делается в Паскале (что продемонстрировал Lapp) - т.е., обращаться к символу по индексу, а можно сделать в духе С, используя указатель на строку... То есть:Цитата char *p = pc1; // начинаем просмотр с текущего места основной строки |
Eichhorn |
![]()
Сообщение
#7
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 50 Пол: Женский Реальное имя: Сафиуллина Алёна Репутация: ![]() ![]() ![]() |
Огромное спасибо!!! Всё поняла, во всём разобралась.
-------------------- Жизнь похожа на собачью упряжку: если не идёшь впереди, то всё время видишь одно и то же...
|
Lapp |
![]()
Сообщение
#8
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Приношу запоздалые извинения за свои ляпы. Все же коды надо проверять..
Вот рабочий вариант (чисто для порядку)): int l= strlen(c2); Согласен, что длину я зря приплел.. ( -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
![]() ![]() |
![]() |
Текстовая версия | 18.06.2025 8:16 |