Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[C++] Вхождение в строку заданной подстроки

12K
27 ноября 2006 года
mortar89
25 / / 17.11.2006
Народ помогите пожалуйста, срочна надо сдавать лабу, задача была такая :разработать функцию, которая находит последнее вхождение в строку заданной подстроки(без использования string h)!Подскажите пожалуйста, почему программа у меня не правильно работает:confused:
Код:
#include <conio.h>
#include <stdio.h>

int index(char * ST1, char * ST2)
{int i,j,m1,m2,max=0;
for(m1=0; ST1[m1] !='\0'; m1++);
for(m2=0; ST2[m2] !='\0'; m2++);
if(m2>m1)
return -1;
for(i=0; i<=m1-m2; i++)
{
for(j=0; j<m2; j++)
 if(ST1[j] != ST2[i+j])
  break;
 if(j==m2)
 return i;
 }return -1;
}

void main()
{
char S1[ ]="прпрпрпрпрпрпрпр";
char S2[ ]="пр";
  printf("\nIndex=%d", index(S1,S2));
  getch();
}
547
27 ноября 2006 года
Hydra
488 / / 20.06.2006
Цикл просто задом наперд пусти
 
Код:
for(i=m1-m2-1;i>0; i++)
{
for(j=0; j<m2; j++)
 if(ST1[j] != ST2[i+j])
  break;
 if(j==m2)
 return i;
 }return -1;
}
12K
27 ноября 2006 года
mortar89
25 / / 17.11.2006
Цитата: Hydra
Цикл просто задом наперд пусти
 
Код:
for(i=m1-m2-1;i>0; i++)
{
for(j=0; j<m2; j++)
 if(ST1[j] != ST2[i+j])
  break;
 if(j==m2)
 return i;
 }return -1;
}



Спасибо!

24K
28 ноября 2006 года
Чаёк
1 / / 28.11.2006
Используй алгоритм Кнута-Морриса-Пратта
http://www.yandex.ru/yandsearch?rpt=rad&text=%CA%ED%F3%F2-%CC%EE%F0%F0%E8%F1-%CF%F0%E0%F2%F2 <= найдётся всё
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог