if语句中括号的匹配

原创 2015年07月08日 20:55:29


编程的时候,if条件里面的“(”、“)”括号经常出现不匹配的情况导致编译不过,请编写程序检测输入一行if语句中的圆括号是否匹配正确。同时输出语句中出现的左括号和右括号数量,如if((a==1)&&(b==1))是正确的,而if((a==1))&&(b==1))是错误的。注意if语句的最外面至少有一对括号。
输入:if((a==1)&&(b==1))
输出:RIGTH 3 3
输入:if((a==1))&&(b==1))
输出:WRONG 3 4
#include<iostream>
#include<stack>
using namespace std;
void getResult(char *str)
{
 stack<char> c;
 if(str==NULL)
  return;
 int len=strlen(str);
 int flag=1;
 int left=0;
 int right=0;
 char *a="RIGHT";
 char *b="WRONG";
 char *p=a;
 for(int i=0;i<len;i++)
 {
  if(str[i]=='(')
  {
   left++;
   c.push(str[i]);
  }

  if(str[i]==')')
  {
   right++;
   if(c.size()-1==0&&i!=len-1)
   {
    flag=0;
    p=b;
   }
  }
 }
 if(left!=right)
  p=b;
 cout<<p<<" "<<left<<" "<<right<<endl;


}

void main()
{
 char str[1000];
 gets(str);
 getResult(str);

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

if语句中的括号匹配检测

可以考虑利用堆栈来做,遍历整个输入字符将左括号全部入栈,出现右括号就出栈。其正确的情况下首先左右括号数量必须保持一致,其次在最后一个右括号出现前栈里是不能为空的!这就可以分为当出现右括号要出栈时栈里却...

判断if语句括号是否合法

编程的时候,if条件里面的“(”、“)”括号经常出现不匹配的情况导致编译不过,请编写程序检测输入一行if语句中的圆括号是否匹配正确。同时输出语句中出现的左括号和右括号数量,如if((a==1)&&(b...

shell中括号的特殊用法 linux if多条件判断

Shell中的括号有其特殊的用法, 现总结如下: 1. 符号$后的括号 ${a} 变量a的值, 在不引起歧义的情况下可以省略大括号. $(cmd) 命令替换, 结果为shell命令cmd的输出,...

qt中的正则表达式QRegExp使用以及匹配中括号[]方法

Qt的SDK里包含一个很帮的GUI工具,可以方便我们进行这类转换并测试你的表达式。可以按照如下的方式打开:“开始”->“程序”->“Qt SDK by Nokia v2010.02.1 (open ...

一行文本中括号的匹配情况

要求:文本中括号匹配的话,返回最大深度,如果不匹配返回错误 代码如下: /* * ========================================================...

链表栈实现表达式中括号的匹配检测

之前被问到如何用栈来实现

不用栈检查小括号、中括号、大括号的匹配

设置三个计数器初值设为零,分别记录小括号、中括号、大括号。开始进行第一次扫描,从左向右依次扫描每个字符,遇到左括号计数器加一,遇到右括号计数器减一,出现计数器小于零时,报错退出。扫描结束后,若三个计数...
  • ztf312
  • ztf312
  • 2015年08月24日 15:48
  • 751

华为2014机考题目_判断if括号匹配是否合法_堆栈_简单的方法- -

/******************************************************** Copyright (c) 2013, binzhouweichao@163.c...

华为2014机考题_判断if括号是否匹配_堆栈

/*********************************************** Copyright (c) 2013, binzhouweichao@163.com *******...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:if语句中括号的匹配
举报原因:
原因补充:

(最多只允许输入30个字)