Изменение
int search(const char *content[], const char *search_term)
до
int search(const char content[], const char *search_term)
РЕДАКТИРОВАТЬ:
Также изменить:
if(!strcmp(content[t], search_term)){
до
if(!strcmp(&content[t], search_term)){
или
if(!strcmp(content + t, search_term)){
Поскольку вы используете strcmp
для поиска соответствия, вы не сможете найти все вхождения строки поиска в файле. Вы найдете только те строки, которые end в строке поиска.
Пример: ваша строка поиска "hello world
" и говорят, что файл содержит 2
строк:
I wrote hello world
hello world is good
В этом случае ваша программа сможет найти только 1-е вхождение, а не 2-е.
Даже для того, чтобы это совпадение было найдено, в ваш код необходимо внести еще некоторые изменения:
Строка, прочитанная fgets
, содержит завершающий символ новой строки, от которого вам придется избавиться, например:
while(fgets(line, sizeof(line), file)){
line[strlen(line)-1] = 0;
Также, когда поиск не удался, вы возвращаете 0
, который следует изменить на -1
.