I don't get why you use fgets. If it's an ASCII file, and it should be for the thing you're trying to do, all you need to do is strstr(buff, find) and then memcpy. Not strcpy, in an ASCII file aren't any NULL bytes. Well, not that I know of. I've never encountered NULL bytes in an ASCII file.

So it'd be more like this:
[code=c]//read in the whole file
char ptr = strstr(buf, find);
memcpy(ptr, find, sizeof(char)
strlen(find));[/code]

Something like that.