与之前解决的四则表达式很相似,原因在于四则表达式也是递归的概念
#include <iostream>
#include <cstdio>
using namespace std;
char wholeExp[1500];//表示整个表达式的字符串
int ptr = 0;
bool exp();//读入一个表达式并返回其值
bool item();//读入一个项并返回其值
bool factor();//读入一个因子并返回其值
bool notExp();//将表达式取反的操作
bool exp()
{
bool result = item();
while(wholeExp[ptr]=='|')
{
ptr++;//注意先移动下标,才可以进行下面的计算
result = result | item();
}
return result;
}
bool item()
{
bool result = factor();
while(wholeExp[ptr]=='&')
{
ptr++;
result = result & factor();
}
return result;
}
bool factor()
{
bool result;
switch (wholeExp[ptr])
{