求在c++文件操作中,查找并替换字符串的代码,注意是在文件操作中,复制粘贴的请绕道! 50
2016-05-20
展开全部
这个要做得完美还是挺麻烦的,有点象编译器的一部分工作了。我考虑,要完成如下这些处理:1.扫描全文件,关注如下内容:a,注释-------------以便随时可知当前位置是否处于注释范围内b,预处理指令#define、#include等--以便随时可知当前位置是否处于预处理指令范围内c,字符串---字符串开始标志是",但不包括表示单个字符的情况(如chara='"';或printf("%c",'"')),若当前处于a或b的有效范围,也不记录其为有效标志。找到开始标志后,开始找字符结束标志,结束标志确认方法是在开始标志确认方法基础上,还要去掉被转义的情况,即\"。重复这个过程,定位出全部字符串。并记录下这些串的始终点位置。2.在文件中确认定义新宏的位置---可以在最后一条#include指令之后3.对1中找到的全部有效字符串,在新宏位置处加一条#define宏名字符串[enter],并用宏名替换原位置处的串几点说明:-按上述方法,类似printf("%d",i)中的"%d"也会被替换为宏。-宏名为了不重复,可用字母+数字的形式,且数字不断自加。同时,安全起见,对每个宏名都要在原文件中查找一遍,确保文件全文中没有出现与宏名相同的串。-插入新宏的定义以及用宏替换原串时,要考虑到对1中记录的串的位置的影响,需要同步更新串的位置记录。
追问
也不要求多完美,只要能用就行了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询