如何使用char字符串作为数学运算符?

时间:2018-01-26 23:59:08

标签: c++

我正在进行课堂作业而我正在尝试使用char作为操作符,但IDE一直告诉我它在op中期待分号(返回operand1 op operand2;)。我在这里缺少什么?

Operand1和operand2都是浮点数,char操作仅限于+, - ,*或/.

float evaluatePrefix::evaluatePre(string strExp)
{
    strLength = strExp.length();
    if (strLength == 1)
        return strExp[0];
    else
    {
        char op = strExp[0];

        int endFirst = endPre(strExp, 1);

        float operand1 = evaluatePre(strExp.substr[1, endFirst]);

        int endSecond = strLength - endFirst + 1;
        float operand2 = evaluatePre(strExp.substr[endFirst + 1,   endSecond]);

        //float theAnswer = operand1 op operand2;

        return operand1 op operand2;
    }
}

1 个答案:

答案 0 :(得分:7)

你不能简单地做

char plus = '+';
int result = 2 plus 2;

这不是C ++的工作方式......但你可以使用switch或if语句。

if (op == '+') {
    return operand1 + operand2;
} else if (op == '-') {
    return operand1 - operand2;
} ...