输入一个字符串,里面包含 + - × 和0——9,保证每个输入的字符串都可以输出结果,计算字符串的值
例如,输入 1+2×3-4,输出 3
#include <iostream>
using namespace std;
int ConvertToRes(char* str)
{
int result=0;
char* index=str;
int a=0;
int b=1;
char flag='+';
bool isMul=false;
while (*index!='\0')
{
if(*index=='+' || *index=='-' || *index=='*')
{
if(*index=='*')
{
b*=a;
isMul=true;
a=0;
}
else
{
if(flag=='+')
{
if(isMul)
{
result+=(b*a);
b=1;
a=0;
}
else
{
result+=a;
a=0;
}
}
if(flag=='-')
{
if(isMul)
{
result-=(b*a);
b=1;
a=0;
}
else
{
result-=a;
a=0;
}
}
flag=*index;
}
}
else
a=10*a+(*index-'0');
++index;
}
if(flag=='+')
{
if(isMul)
result+=(b*a);
else
result+=a;
}
if(flag=='-')
{
if(isMul)
result-=(b*a);
else
result-=a;
}
return result;
}
void main()
{
cout<<ConvertToRes("3+1*2*3*4+9-10");
}