中易网

MFC表达式求值问题

答案:2  悬赏:50  
解决时间 2021-01-21 16:13
MFC表达式求值问题
最佳答案
int MidToBack(char *tPtr)
{
Stack s;
char *tChar = tPtr;
int tRet;
int i=0;
char tSave[MAXSIZE];
bool uNumber = false;
//检测首字符是否为负数
if(*tChar == '-')
{
tSave[i] = *tChar;
++i;
++tChar;
goto Number;
}
while(*tChar)
{
if(*tChar == ' ')
{
++tChar;
continue;
}
else if(::isdigit(*tChar))
{
Number:
while((*tChar >= '0') && (*tChar <= '9'))
{
tSave[i] = *tChar;
++i;
++tChar;
}
if(*tChar == '.')
{
tSave[i] = *tChar;
++i;
++tChar;
while((*tChar >= '0') && (*tChar <= '9'))
{
tSave[i] = *tChar;
++i;
++tChar;
}
// --tChar;
}
--tChar;
tSave[i] = ' ';
++i;
}
else if((*tChar == '+') || (*tChar == '-') || (*tChar == '*')||
(*tChar == '/') || (*tChar == '(') || (*tChar == ')')||
(*tChar == '[') || (*tChar == ']') || (*tChar == '{')||
(*tChar == '}'))
{
if(s.IsEmpty() || *tChar == '{' || *tChar == '[' || *tChar == '(')
{
s.Push(*tChar);
if(*(tChar+1) == '-')
{
++tChar;
tSave[i] = *tChar;
++i;
++tChar;
goto Number;
}
}
else
{
//对特殊字符的处理例如'}'']'')'
if((*tChar == '}') || (*tChar == ']') || (*tChar == ')'))
{
char tTemp;
switch(*tChar)
{
case ')':tTemp='(';
break;
case ']':tTemp='[';
break;
case '}':tTemp='{';
break;
default:
break;
}
while(tTemp != s.Top())
{
tSave[i] = s.Top();
++i;
tSave[i] = ' ';
++i;
s.Pop();
}
s.Pop();
}
else //对特殊字符的处理例如'+''-''*''/'
{
tRet = Judge(s.Top(),*tChar);
if(tRet == 1)
{
s.Push(*tChar);
}
else
{
tSave[i] = s.Top();
++i;
tSave[i] = ' ';
++i;
s.Pop();
s.Push(*tChar);
}
}
}
}
else
{
cout<<"输入出错\n";
return -1;
}
tChar++;
}

while(!s.IsEmpty())
{
tSave[i] = s.Top();
++i;
tSave[i] = ' ';
++i;
s.Pop();
}
strncpy(tPtr, tSave, i);
tPtr[i] = '#';
return 1;
}
全部回答
《聊斋电视系列...《聊斋电视系列...(22)
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
有过犯罪记录的能办下来护照和签证吗
哪个了解没有天然气如何取暖
P2P信贷业务的收益如何?
国防路幼儿园地址在哪,我要去那里办事
什么叫信托
如何把数组变量赋给指针数组
迎祥村地址好找么,我有些事要过去
javabean和实体类的区别?
求解释?关于二通插装阀
联东村地址在什么地方,我要处理点事
224乘以30完全地列竖式
以下哪位是我国掌管姻缘的“媒神”?
正常儿童的屈光度和裸眼视力是多少?
电机线圈一般是什么铜,黄铜还是紫铜
为什么我家的电脑点击右键很慢,打开应用的速
推荐资讯
建筑施工项目的特点是什么? 项目经理主要职
三星i9220在刚进事场多少钱
你好,我要给孩子看眼睛,我能麻烦你吗?
怎样算自己的麻将日历
常期失眠怎么办【健康之路】
小复式楼房装修费用?复式楼房优点?
房屋渗漏维修的法律问题?怎么解决才好?
哪位熟悉南通家纺四件套价格是多少?麻烦报一
土地补偿费、安置补助费是怎么回事了
福州金山南国金辉在那里
久量充电台灯的价格高吗?
在著名时尚杂志瑞丽时尚先锋刚刚揭晓的创意评
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?