有穷状态机思想——注释转换
画状态转换图
所谓自动机思想就是假设有一台机器,上面有状态指示灯,作用是通过传送带前后改变通过的物体。
当状态灯保持时,货物按一定规则输出,当检测到通过的货物满足一定条件,状态灯突变,货物根据另一种规则输出。
利用这种思想,可以将所有有穷的状态列出来,大大清晰了思路,只需要往每一个状态里填对应的处理函数。
例如注释转换问题,把形如/**/的c风格注释转换为c++风格//注释。
如图,开始状态默认为不是注释,线上代表现状态进入下一状态需要读入的字符。
-
枚举状态
c语言通过enum列举所有的状态。
-
先写出状态转换框架
利用switch case语句和while循环配合,完成状态之间跳转。
-
添加动作函数
在每一个case里写函数需要做的任务
测试样例:
输出:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!