#include "cstack.h"
#include <iostream>
#include <cstring>
using namespace std;
bool isValidExpression (CStack&, char*);
int main (void)
{
char expression[21];
expression[0-21]=0;
cout<< "Enter an expression: ";
cin >>expression;
CStack stack1;
if (isValidExpression (stack1, expression)==true)
{
cout << "\nIt's a valid expression";
}
else
{
cout << "\nIt's NOT a valid expression";
}
return 0;
}
bool isValidExpression (CStack& stackA, char* strExp)
{
for(int a=0;a<21 && strExp[a]!=0;a++)
{
if(strExp[a]="}"||"]"||")") //This is the issue right here
{
cout<<"Action A" <<endl;
}
else
{
stackA.push(strExp[a]);
}
}
return true;
}
我遇到的问题是无论我输入什么输入,Action A总是会发生。如果我输入[例如,我仍然得到行动a,这不是预期的结果。我一直使用这样的字符串,但我们被要求在这个程序中使用cstring。你将如何编辑这个工作?通过引用传递的c字符串的输入验证
'==',而不是'='。由于它通过引用传递,这只会编辑字符串。 – lcs 2013-03-14 02:35:50
woops,赶上 – 2013-03-14 02:36:05