手抄代码1-24
2016-06-06 19:34
253 查看
1-24
检查c源码的语法,圆括号,方括号,大括号是否匹配;#include <stdio.h> int brace, brack, paren; void in_quote(int c); void in_comment(void); void search(int c); int main(void) { int c; extern int brace, brack, paren; while ((c=getchar()) != EOF) { if(c=='/') { if((c=getchar())=='*') in_comment(); else search(c); }else if(c=='\''||c=='"') in_quote(c); else search(c); if(brace < 0) { printf("Unbalanced braces\n"); brace = 0; }else if (brack<0) { printf("Unbalanced brackets\n"); brack =0; } else if (paren<0) { printf("Unblanced parentheses\n"); paren = 0; } } if (brace>0) printf("Unbalanced braces\n"); if(brack>0) printf("UNbalanced brackets\n"); if (paren>0) printf("Unbalanced parentheses\n"); return 0; } void search(int c) { extern int brace, brack, paren; if(c=='{') ++brace; else if(c=='}') --brack; else if(c=='[') ++brack; else if(c==']') --brack; else if(c=='(') ++paren; else if(c==')') --paren; } void in_comment(void) { int c, d; c = getchar(); d = getchar(); while(c != '*'|| d != '/') { c = d; d = getchar(); } } void in_quote(int c) { int d; while((d=getchar())!=c) if(d=='\\') getchar(); }
把左边减去右边后的值是否为0,否则不匹配。extern关键字外部变量声明,
相关文章推荐
- 【转载】Eclipse:Android开发中如何查看System.out.println的输出内容
- celery与mangodb搭配应用
- C/C++语言中const的用法
- 第一张节作业
- php调用接口的方法 curl
- 环形缓存(java版)
- PHP-超全局变量
- Java-IO 输入输出流详解
- os负责程序与操作系统的交互,sys负责程序与python解释器的交互。
- C与C++混合是出现连接错误,错误代码:1853
- 谷歌借Google Play重返中国,这次能成功吗?
- qt与数据库操作
- ubuntu下eclipse提示框黑色背景修改
- Word_TBL编译报错
- Git客户端图文详解如何安装配置GitHub操作流程攻略
- php 面向对象之继承、多态和静态方法
- 遗传算法(Genetic Algorithm)
- Spring MVC配置介绍
- C++多继承
- 【c++程序】栈的基本用法