//读入一个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; }