お世話になります。お力添えください。

テキストファイル内の特定の文字列を検索して、
1.検索結果の『前』『後』の行に、任意の文字列を『追加』する、
2.検索結果の行を、任意に編集する
ということを行いたいのですが、
openしたファイルを直接書き換えることはできるのでしょうか?

一度、別のファイルを作成して、
元を削除して、
作成したファイルをリネームするのではなく、
直接編集できないのかなと思いました。

あと、上記の『1』について、
ファイル内の先頭から検索して、
はじめにマッチする場所へポインタを移動する関数って標準にはないでしょうか?
今は先頭からゴリ押しで探しているので、格好悪いです…。