@Del0v
Студент

Почему не работает поиск слова в строке?

Доброго времени суток, написал на 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, что естественно не правильно, но хоть не крашится. В чём проблема, заранее спасибо.
  • Вопрос задан
  • 354 просмотра
Пригласить эксперта
Ответы на вопрос 1
Zoominger
@Zoominger
System Integrator
int search(char t[9], char p[3])
Попробуйте так:
int search(char t[], char p[])
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы