括号匹配的c语言代码
时间: 2023-12-15 17:29:46 浏览: 97
括号匹配 C语言代码
这段C语言代码实现了括号匹配的功能。它使用了栈这种数据结构,当输入左括号时,将其压入栈中,当输入右括号时,如果与栈顶的左括号匹配,则将栈顶的左括号出栈。最后判断栈是否为空,如果为空则说明括号匹配成功,否则匹配失败。
代码中使用了一个结构体Stack来表示栈,其中包括栈的长度、栈顶指针和一个字符数组作为栈的存储空间。判断函数judge用来判断输入的字符是哪种括号,方便下面主函数中的if语句的判断条件。
代码中还有一些细节需要注意,比如在输入字符时需要判断是否到达了字符串的结尾,以及在判断括号匹配时需要判断栈是否为空。
下面是这段代码的实现:
```
#include <stdio.h>
#include <stdlib.h>
char array[] = {'(', '[', '{', '+'};
int judge(char x) {
if (x == ')') {
return 0;
}
if (x == ']') {
return 1;
}
if (x == '}') {
return 2;
}
else {
return 3;
}
}
typedef struct {
int len;
int top;
char a[100];
} Stack;
int main() {
Stack s;
s.len = 100;
s.top = -1;
int x;
while (1) {
scanf("%c", &x);
if (x == '\n' || x == '\0') {
break;
}
if (s.top == -1 || s.a[s.top] != array[judge(x)]) {
s.top++;
s.a[s.top] = x;
}
else {
s.top--;
}
}
if (s.top == -1) {
printf("yes");
}
else {
printf("no");
}
return 0;
}
```
阅读全文