将字符串和char传递给bool函数时出错

时间:2017-10-06 20:03:24

标签: c++ string function parsing

我正在尝试创建一个查看'-'符号的函数,并根据它前面是否有' '(空格)来检查是减号还是负号。我这样做是通过比较我拥有的当前字符(infix[x])和与infix[x+1]进行比较;我一直在收到错误,但我不确定它是否因为我没有正确传递或其他东西?

        for(unsigned x = 0; x < infix.length(); ++x)
        {
             // place numbers (standard, decimal, & negative)
             // numbers onto the 'postfix' string
             if((isdigit(infix[x])) || (infix[x] == '.'))
             {
                 postfix += infix[x];
             }
             else if ((infix[x] == '-'))
             {
                     if(checkfornegative(infix[x], infix)== 1))  // error: expected primary-expression before ‘)’ token
            if(checkfornegative(infix[x], infix)== 1))
            {
                        postfix+= " ";
            }
            else if(checkfornegative(infix[x], infix)== 0))  //error: expected primary-expression before ‘)’ token
                if(checkfornegative(infix[x], infix)== 1))

                {
                    postfix += infix[x];
                }

            }

// This is the function in using
bool checkfornegative(char C, string& QQ)
{
         bool status;
         if((C == '-') && (QQ[C+1] == ' '))
         {
                 status = true;
         }
         else if((C == '-') && (QQ[C+1] != ' '))
         {
                 status =  false;
    }
    return status;
}

1 个答案:

答案 0 :(得分:2)

您收到编译错误,因为if条件中有额外的右括号。

if(checkfornegative(infix[x], infix)== 1))  // error: expected primary-expression before ‘)’ token

从条件中删除最后一个右括号。同样适用于第二个条件。

但是,您的代码中存在一些问题,但它们不是编译错误。