首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用C替换文件中的单词

使用C替换文件中的单词
EN

Stack Overflow用户
提问于 2011-02-18 14:01:22
回答 2查看 6.7K关注 0票数 0

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

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

代码语言:javascript
复制
my friend name is sajid

我想用祖父取代“朋友”一词,以便将文件更改为:

代码语言:javascript
复制
my grandfather name is sajid 

(我正在Ubuntu上开发。)

更新:

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

代码语言:javascript
复制
"I bought apple from the market"

如果我用菠萝代替苹果,像苹果有5个焦,菠萝有9个焦,它会写成

代码语言:javascript
复制
"I bought pineapple m the market"

这也影响了苹果后面的文字。

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

EN

回答 2

Stack Overflow用户

发布于 2011-02-18 14:09:42

如何使用退出的Linux程序?

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

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

编辑:

或者,将文件加载到STL字符串中,使用this等技术将“朋友”替换为“祖父”,并将新字符串保存到文件中。

票数 1
EN

Stack Overflow用户

发布于 2011-02-18 15:17:26

正如您已经意识到的,您将无法在原始文件中进行相应的更改。

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

代码语言:javascript
复制
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的工作方式。

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5042196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档