一道关于宏替换的问题

来源:百度知道 编辑:UC知道 时间:2024/07/08 00:39:12
编写一个程序,其功能是对C语言源程序中的无参宏替换完成替换,以形成新的源程序文件。
如:#define MAX 100
main()
{......
}
扫描源程序,把程序中的‘MAX’都替换成‘100’,应该如何编写?
下周就要交了,好痛苦啊!!!!

有一定难度.
用ASCII方式打开文件.
用 fgets 一行一行地读入,一行一行地 分析.
每 读入 一行 要 找MAX,
对含MAX 的字符串进行句法和词法分析:
引号里的MAX不变,
MAX前后有字母或数字的不变,
#define MAX 100 这句不变,
注解里MAX的不变.

其它的变.

在文件A中有一些特定的字符串如:
GOOD KKK
BEST CCC
LIKE DDD
如何查找其中的“BEST”字符串,并用“YBEST”替换

#include <iostream.h>
#include <fstream.h>
#include <string.h>
#include <stdlib.h>
char *strreplace(char *src, char *oldstr, char *newstr)
{
char *needle = strstr(src, oldstr);
if (needle)
{
char *resultstr = new char [strlen(src)+strlen(newstr)+1];
strncpy(resultstr, src, needle-src);
resultstr[needle-src]='\0';
strcat(resultstr, newstr);
strcat(resultstr, needle+strlen(oldstr));
needle=strstr(resultstr,oldstr);
if(n