用C或C++编写 括号配对检查程序
题目描述:对输入的一段c或者c++代码(只要求其中一种),检查各种括号是否配对,以及配对的情况。基本要求:对于输入的一段代码,能够检查其中的括号(例如{}/[]/())是...
题目描述:对输入的一段c或者c++代码(只要求其中一种),检查各种括号是否配对,以及配对的情况。基本要求:对于输入的一段代码,能够检查其中的括号(例如{}/[]/())是否配对,如果配对,输出正确的提示信息,如果不配对,则能够将没有配对的括号的位置打印出来。提高要求:(1) 若代码中有注释,能够自动忽略注释内容;(2) 任意输入一个括号的位置,能够打印出与之配对的括号的位置。设计提示:这段代码可以输入到文本文件中,然后利用所学的高级语言程序设计知识对文件(对象)进行操作,具体的数据结构和算法可利用堆栈来递归实现。
展开
3个回答
2013-09-13
展开全部
思路倒是简单,就是利用栈来匹配。简单的数据结构应该包括 符号类型(区分小中大括号),括号出现在字符串的位置这些。
读入字符,如果是左括号,则入栈,如果是左注释/则看后面是否有*如果有,则一直到×/才结束。如果是有括号,则看是否跟栈上匹配,如果匹配,则把这个括号左右位置和类型放入一个数组什么的,以备后面用户检索对应位置。如果不匹配,则有错误。到最后,栈应该为空,否则也是不匹配。具体代码编写需要考虑更多情况,比如不能越过字符数组边界等。
随风的代码没有处理注释,另外,没有记录符号配对位置。还有好像只能处理括号了,不太符合题意要求
读入字符,如果是左括号,则入栈,如果是左注释/则看后面是否有*如果有,则一直到×/才结束。如果是有括号,则看是否跟栈上匹配,如果匹配,则把这个括号左右位置和类型放入一个数组什么的,以备后面用户检索对应位置。如果不匹配,则有错误。到最后,栈应该为空,否则也是不匹配。具体代码编写需要考虑更多情况,比如不能越过字符数组边界等。
随风的代码没有处理注释,另外,没有记录符号配对位置。还有好像只能处理括号了,不太符合题意要求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-13
展开全部
板凳招租
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-09-13
展开全部
占个位置
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询