纯C语言写的编译器
2013-12-12 19:09
148 查看
源文件Source1.txt:
main()
{
int a, b; //定义变量
a = 10;
b = a + 20;
a= b + c * ( e-a );
}
/*轻轻的我走了,正如我轻轻的来*/
源代码:
main()
{
int a, b; //定义变量
a = 10;
b = a + 20;
a= b + c * ( e-a );
}
/*轻轻的我走了,正如我轻轻的来*/
源代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { FILE *fp1; char str1[100],str2[100]; char c; int i=0,j,k=0; if((fp1=fopen("Source1.txt","r"))==0) { printf("文件打开失败"); exit(-1); } while((c=fgetc(fp1))!=EOF) { str1[i]=c; i++; } while(j<i) { if(str1[j]==' ')//去掉多余的空格 { str2[k++]=str1[j]; j++; while(str1[j]==' ') j++; } else if(str1[j]=='/') { j++; if(str1[j]=='/')//去掉注释 { while(str1[j]!='\n') j++; } else str2[k++]=str1[j-1]; } } fclose(fp1); return 0; }
相关文章推荐
- C语言使用联合体和位域让编译器进行位操作
- TinyCMips - 1 C语言子集到Mips子集编译器项目开坑
- 使用Lex和Yacc开发C语言的编译器
- 详解C语言volatile关键字(禁止编译器优化-原地址读取)
- 从编译器角度分析C语言中数组名和指针的区别
- 从编译器角度分析C语言中数组名和指针的区别
- C语言的编译器为什么不检查数组下标越界
- linux内核中的C语言常规算法(前提:你的编译器要支持typeof和type)
- 关于不同编译器下C语言中自加(++)运算符的解释
- 编译原理课程设计-PL/0编译器的扩充(C语言完整版)
- C语言简单子集编译器功能设计书(第一版)
- linux内核中的C语言常规算法(前提:你的编译器要支持typeof和type)
- C语言在32位和64位机器下数字数据类型的字节数取决于编译器和平台, 主要由编译器决定。
- 转载加自己的见解 之从编译器角度分析C语言中数组名和指针的区别
- RC6加密C语言的例子,可以直接C编译器编译可以直接通过
- linux内核中的C语言常规算法(前提:你的编译器要支持typeof和type)
- C语言数组可变长在GCC编译器中是怎么样完成的
- 使用Lex和Yacc开发C语言的编译器
- 从编译器角度分析C语言中数组名和指针的区别
- C语言各种编译器的清屏方法