Доброго времени суток, написал на C++ алгоритм поиска первого вхождения слова в строке. Функция должна возвращать номер позиции первого вхождения слова в строке:
#include <iostream>
using namespace std;
int search(char t[9], char p[3])
{
int n = strlen(t), m = strlen(p), i = 0, j;
while (i <= (n-m)) //<----------------------тут краш
{
j = 0;
while ((t[i+j] = p[j]) && (j < m))
j++;
if (j = m)
return i;
i++;
}
}
int main()
{
cout << search("badbarrar", "bar");
return 0;
}
Программа начинает выполнение и сразу крашится. Если заменить (n-m) на (m-n) - то программа выполнится с ответом -6, что естественно не правильно, но хоть не крашится. В чём проблема, заранее спасибо.