假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[([ ][ ])]等为正确的匹配,[( ])或([ ]( )或(()))均为错误的匹配。
现在要求检验一个给定表达式中的括弧是否正确匹配。
输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出OK,不匹配就输出Wrong。
输入1
([][])
输出1
OK
输入2
[(])
输出2
Wrong
OJ提示Segmentation fault: 段错误,检查是否有数组越界,指针异常,访问到不应该访问的内存区域的写法👇
俺不懂(T_T)
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
struct Stack {
char* Base;
char* Top;
int stackSize;
};
struct Stack InitiateStack() {
struct Stack S;
S.Base = (char*)malloc(20 * sizeof(char));
S.Top = S.Base;
S.stackSize = 20;
return S;

该博客讨论了如何使用C语言进行括号匹配检验,包括对圆括号和方括号的嵌套匹配。通过给出的输入输出示例,解释了检验括号匹配的方法,并提到了在解决这个问题时可能会遇到的段错误问题,如数组越界和指针异常。
最低0.47元/天 解锁文章
740

被折叠的 条评论
为什么被折叠?



