(C语言)检测括号是否匹配
【摘要】
程序设计基础课大作业1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include&l...
程序设计基础课大作业1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<malloc.h>
#define maxsize 1024
typedef char datatype;
typedef struct
{ datatype elements[maxsize];
int top;
}stack;
void setnull(stack *&);
void push(stack*,datatype);
datatype pop(stack*);
//栈初始化
void setnull(stack *&s)
{
s=(stack*)malloc(sizeof(stack));
s->top=-1;
}
//顺序栈入栈
void push(stack*s,datatype e)
{
s->top++;
s->elements[s->top]=e;
}
int main()
{
char cur_char;
char str[maxsize] = "\0";
stack *s;
setnull(s);
push(s,'a');
printf("请输入需要判断的字符串\n");
gets(str);
for(int i=0;i<strlen(str);i++)
{
cur_char = str[i];
switch(cur_char)
{
case'{':
case'[':
case'(':
push(s,cur_char);
break;
case'}':
if(s->elements[s->top] == '{')
{
s->top--;//出栈
break;
}
else
{
printf("NO\n");
return 0;
}
case']':
if(s->elements[s->top]=='[')
{
s->top--;
break;
}
else
{
printf("NO\n");
return 0;
}
case')':
if(s->elements[s->top] == '(')
{
s->top--;
break;
}
else
{
printf("NO\n");
return 0;
}
default:
;
}
}
if(s->elements[s->top]=='a')
printf("OK\n");
}
C语言的数据结构每次用都需要定义并写相关函数,太过于麻烦,不如C++的直接封装
文章来源: zstar.blog.csdn.net,作者:zstar-_,版权归原作者所有,如需转载,请联系作者。
原文链接:zstar.blog.csdn.net/article/details/111702834
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)