如何用另一个值替换文件行中的值?

时间:2019-02-28 20:46:05

标签: c

我的任务是用文件行中的另一个字符串替换一个字符串。 我仍处于C programming语言学习的开始,并且面临一些问题。我应该找到以#define开头的行,获取它们的值并删除它们。然后,无论常量名称出现在何处,都应将其替换为其值。我已经从文件中保存了定义值,但是在用其值替换常量名称时遇到一些困难。到目前为止,我有两个数组保存了常量名称和值:

char constant_names[256];
char constant_values[256];

如果您能给我一些有关解决任务的想法,我将非常感激。

1 个答案:

答案 0 :(得分:1)

  

如果您能给我一些解决方案的想法,我将非常感激

OP正在寻找想法:

一个关键问题,即模式字符串及其替换字符串的长度可能不同。

读取并处理每一行并保存到另一个文件。


伪代码:

Open file for reading
Open a temp file for writing
For each line
  if "define" found
    add to internal substitution list
  else 
    if a substitutable token found
      perform substitutions
    write line to temp file

close files
rename original file to tmp2
rename tmp file to original
if no errors anywhere
  delete tmp2

我希望大约100-200行C代码。