【发布时间】:2014-09-21 09:07:39
【问题描述】:
我正在尝试比较 cpp 中的字符串,但我遇到了一堆错误,例如
'operator==' 不匹配
从 char 到 const char 的无效转换 *
我正在实现两个功能:
1) 比较字符串并搜索括号,然后返回一个布尔值。
2) 比较字符串并搜索算术运算符,然后返回一个布尔值。
这是我的代码:
bool isBracket(const string b)
{
if(b == ")" || b=="(")
return true;
else
return false;
}
bool isOperator(const string op)
{
string ops= "*+-^/";
for(int i = 0; i < ops.length(); i++)
{
if (op == ops[i])
return true;
else
return false;
}
}
int main()
{
string exp="(a+b)";
for(int i=0; i < exp.size(); i++)
{
cout<<exp[i]<<endl;
if(isBracket(exp[i]))
cout<<"bracket found"<<endl;
if(isOperator(exp[i]))
cout<<"operator found"<<endl;
}
return 0;
}
【问题讨论】:
-
请发布 complete 和 unedited 错误日志,并指出您在源中的哪里得到错误.
-
另外,你的
isBracket函数可以简化为return (b == "(" || b == ")"); -
ops[i]是char。std::string和单个char之间没有可比性。
标签: c++