返回'+','-'表达式的计算结果

1,实例代码:
#include <iostream>
#include <cassert>
using namespace std;

//计算'+','-'表达式的结果
void calculate(const char* str, int &result)
{
    int tmp=0;
    bool flag=true;
    while(*str)
    {
        if( (*str!='+')&&(*str!='-'))
            tmp=( 10*tmp+(*str-'0') );
        else
        {
            if(flag) result+=tmp;
            else result-=tmp;
            if(*str=='+') flag=true;
            if(*str=='-') flag=false;
            tmp=0;
        }
        str++;
    }
    if(flag) result+=tmp;
    else result-=tmp;
}

int main()
{
    char * str = "55+432-444";
    int result=0;
    calculate(str,result);
    cout<<result<<endl;
    return 0;
}

你可能感兴趣的:(表达式)