⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kuahao.c

📁 用C做的括号匹配程序,可以检测用户输入的括号是否匹配并给出提示
💻 C
字号:
#include <stdio.h>


 typedef struct
 {char date[20];
  int top;
  }stack;
  void initstack(stack *s)   /*清空站;*/
 {s->top=-1;
  }
 int stackempty(stack *s) /*判断站是否为空,为空返回1,否则返回0。*/
 {if(s->top==-1)
   return 1;
  else
   return 0;
  }
  void push(stack *s,int a) /*将数压站*/
  { s->top++;
   s->date[s->top]=a;

   }
   void pop(stack *s)  /*弹站*/
  {s->top--;
  printf("弹站");
   }
  void match(stack *s,char e[])
  {int i;
   char c;
   for(i=0;(c=e[i])!='#';i++)
   {if((c=='(')||(c=='[')||(c=='{'))
    switch(c)
    {case '[':if(s->date[s->top]=='('){printf("小括号的内部不允许出现大括号!");break;}else{push(s,c);continue;}
     case '{':if((s->date[s->top]=='(')||(s->date[s->top]=='[')){printf("小括号的内部不允许出现大括号!");break;}else{push(s,c);continue;}
     default: continue;}
    else if(c==')')
    {if(s->date[s->top]=='(')
     {pop(s);
      continue;}
      else {printf("第%d个字符%c无法匹配",i+1,c);  return;}
     }
     else if(c==']')
    {
     if(s->date[s->top]=='[')
      {pop(s);
      continue;
      }
      else {printf("第%d个字符%c无法匹配",i+1,c);   return;}
     }
     else if(c=='}')
    {if(s->date[s->top]=='{')
     {pop(s);
      continue;}
      else {printf("第%d个字符%c无法匹配",i+1,c);    return;}
     }
     else
     continue;
    }
     if(!stackempty(s))
     printf("输入的左括号没有匹配完全!!");
     else  printf("match!");
   }
   main()
   {char e[20];
    stack *s;
    int a;
    s=(stack *)malloc(sizeof(stack));

    for(a=1;a<=10;a++)
    { initstack(s);
    scanf("%s",&e);
    match(s,e);}
    }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -