Nu este nicio eroare la compilare sau la folosirea functiei strstr, ci la gandirea algoritmului. Spune ce vrei sa faci mai exact, ce trebuie sa faca problema?
Din cate vad eu tu aici citesti un sir, apoi il cauti in cate un rand din fisier si daca il gasesti il elimini de acolo(doar prima aparitie va fi eliminata).
La sfarsit afisezi "s", care va fi NULL, deoarece ai while(f.getline(s,300)) si la ultima evaluare a expresiei f.getline(s,300), s va primi valoarea NULL deoarece ai ajuns la sfarsitul fisierului, si vei iesi din while.
Poate ai vrea sa pui g<<s inainte de a iesi din while:
while (f.getline(s,300))
{p=strstr(s,c);
if (p)
strcpy(p,p+strlen(c));
g<<s;
}