//读入一个c程序,判断其中是否只有一个main()函数,输出“暂时没有发现问题”,或者”没有main()函数“,或者"不能定义多个main()函数"
//提示1:简单处理,可以只比较判断“main()”,考虑实际上的各种可能,main后面的括号中还有其他多种写法。建议按最简单的情形处理。
//提示2:建议设计一个函数,将读到的代码与字符串“main()”进行比较。函数用于判断s1是否“包含”在读入的一行s2中,调用时,形参s1处的实参用“main()”即可,这样写提升了“抽象”级别,更容易实现,对应更高的代码质量。
//测试时,建立一个source.c文件,分别使其中有main()、无main(),以及出现多个。
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE *fp1;
char ch,a[10000];//定义个数组,用于存放所有字符
int i=0,len,x=0;//x记录main函数的个数,i记录字符个数
if((fp1=fopen("data.txt","r"))==NULL)
{
printf("Cannot open \n");
exit(1);
}
while((ch=fgetc(fp1))!=EOF)
{
a[i]=ch;
i++;
}
for(len=0; len<i-5; len++)
{
if(a[len]=='m')//通过检查main()这几个字符来确定是否存在多个main函数;
{
if(a[len+1]=='a')
{
if(a[len+2]=='i')
{
if(a[len+3]=='n')
{
if(a[len+4]=='(')
{
if(a[len+5]==')')
x++;
}
}
}
}
}
}
if(x==0)
printf("没有main()函数");
else if(x==1)
printf("暂时没有发现问题");
else
printf("不能定义多个main()函数");
return 0;
}