使用C替换文件中的单词

如何使用C将文件中的单词替换为另一个单词?

例如,我有一个文件,其中包含:

 my friend name is sajid 

我想用祖父替换朋友这个词,以便将文件更改为:

 my grandfather name is sajid 

(我在Ubuntu Linux上开发。)

更新:

我正在用C进行归档。我创建了一个.txt文件并将一些数据写入其中,但随着程序的进展,我必须搜索一些文本并用其他单词替换它。 我面临的问题是假设在我写的文件中

 "I bought apple from the market" 

如果我用菠萝替换苹果,因为苹果有5个炭,而菠萝有9个炭,它会把它写成

 "I bought pineapple m the market" 

它也影响了苹果之后的文字。

我必须使用C,而不是命令行脚本。

如何使用现有的Linux sed程序?

sed -i 's/friend/grandfather/' filename

这将取代现有文件中的祖父朋友。 如果你想保留原件,请先复印一份!

编辑:

或者,将文件加载到STL字符串中,使用此类技术将“friend”替换为“grandfather”,并将新字符串保存到文件中。

如您所知,您将无法在原始文件中进行更改。

简单的解决方案是从原始文件中读取每个字符串并将其写入标准输出,并根据需要进行替换。 在伪代码中:

 open original file while not at end of original file get next string from original file if string == "friend" write "grandfather" to standard output else write string to standard output end while 

然后,您可以在执行时将输出重定向到另一个文件,类似于sedawk工作方式。

或者,您可以在代码中创建目标文件并直接写入。 如果需要用新文件替换原始文件,可以在stdio使用remove()rename()库函数。