1217 实验四 递归下降语法分析程序设计
2015-12-31 15:57
323 查看
#include<stdio.h> #include<string> char str[10]; //记录要分析的字符串 int x=0; //记录第一个字符 void E(); void X(); void T(); void Y(); void F(); int main() { int len; printf("请输入算数表达式:"); scanf("%s",str); len=strlen(str); str[len]='#'; str[len+1]='\0'; E(); printf("\nTrue!\n"); strcpy(str,""); x=0; return 0; } void E() { T(); X(); } void X() { if(str[x]=='+'||str[x]=='-') { x++; T(); X(); } } void T() { F(); Y(); } void Y() { if(str[x]=='*'||str[x]=='/') { x++; F(); Y(); } } void F() { if(str[x]>='a'&&str[x]<='z') { x++; } else if(str[x]>=0&&str[x]<=9) { x++; } else if (str[x]=='(') { x++; E(); if(str[x]==')') { x++; } else { printf("\nError!\n"); exit(0); } } else { printf("\nError!\n"); exit(0); } }
结果如下:
相关文章推荐
- 解析Json的谷歌官方方法Gson和阿里巴巴的fastJson方法。
- 用javascript/jQuery给CKEditor取值/赋值
- Java序列化与反序列化
- 企业服务总线--解决方案剖析,第 2 部分: 利用 WebSphere6中的SIBus实现ESB
- 数字输出格式的控制
- Android ViewPager + Fragment 实现滑动标签效果
- java9.接口的应用
- 2015第54周四
- c语言
- 1231-递归下降语法分析
- gtid
- 关于arrayAdapter
- 2015年终总结
- redis操作
- 深入浅出设计模式(1)
- 开创一个新世界
- iOS 开发 实现 将16进制字符串转换成16进制数
- 使用Xcode Instruments Leak解决内存泄漏问题
- sql 时间向减函数
- hibernate One2Many级联增删改查