在C语言中利用有限状态自动机模拟编译器去除代码中/**/类注释的程序实现
2012-11-15 22:54
806 查看
C语言中实现去除/**/类注释的有限状态自动机为:
按照上图,实现代码如下:(编译器:C-Free 5.0)
运行结果:
1.程序处理之前:
2.程序处理之后:
有限状态自动机使编程变地很简单!
按照上图,实现代码如下:(编译器:C-Free 5.0)
#include<stdio.h> #include<stdlib.h> #include<conio.h> #include<string.h> #define NULL 0 main() { enum { x1 = 0, x2 = 1, x3 = 2, x4 = 3, x5 = 4, } state; FILE *fp_in, *fp_out; char ch, temp; state = x1; fp_in = fopen("编辑前代码.txt", "r"); fp_out = fopen("编译后代码.txt", "w"); if((fp_in = fopen("编译前代码.txt", "r")) == NULL) { printf("打开编译前代码.txt文件失败!"); getchar(); exit(1); } if((fp_out = fopen("编辑后代码.txt", "w")) == NULL) { printf("打开编译后代码.txt文件失败!"); getchar(); exit(1); } ch = fgetc(fp_in); do { switch(state) { case 0: if(ch == '/') { state = x2; temp = ch; } else fputc(ch, fp_out); break; case 1: if(ch == '*') state = x3; else { state = x1; fputc(temp, fp_out); fputc(ch, fp_out); } break; case 2: if(ch == '*') state = x4; break; case 3: if(ch == '/') state = x5; else if(ch == '*') state = x4; else state = x3; break; case 4: if(ch == '/') state = x2; else state = x1; break; default: break; } ch = fgetc(fp_in); }while(ch != EOF); printf("编译完成!\n"); }
运行结果:
1.程序处理之前:
2.程序处理之后:
有限状态自动机使编程变地很简单!
相关文章推荐
- c语言实现去除代码中的注释
- Node.JS 利用socket.io 实现dj播放及聊天程序 代码
- php 论坛采集程序 模拟登陆,抓取页面 实现代码
- 编写代码实现,模拟用户登录情景,并且只能登录三次。 只允许输入三次密码,如果密码正确则提示登录成,如果三次均输入错误,则退出程序。
- c语言:模拟实现一个输入密码自动取款的程序
- 利用C语言实现POST数据包如此简单【模拟网页提交表单】
- 初识:如何实现利用C语言代码封装成可以安装的windows软件?
- C语言 编写代码实现,模拟用户登录场景 ( for循环,if语句的使用)
- C++去除程序注释实现
- 利用c语言编辑--钟表模拟程序(表针形式)
- C语言中利用位运算和指针实现的交换两个数的程序
- 利用java模拟网站登录程序代码
- C语言实现用程序数据段空间模拟内存的动态分配
- 利用c语言编辑--钟表模拟程序(表针形式)
- 利用C语言实现POST数据包如此简单【模拟网页提交表单】
- 去除代码中的注释——完整实现代码
- 去除C/C++程序代码中的注释
- C语言实现抢红包程序代码精简版
- 用c语言实现模拟用户登录程序以及猜数字游戏
- 新浪微博自动转发评论 源码 按键精灵实现 详细注释 几十行代码实现 涉及图像识别模拟键盘鼠标