马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
简简单单的一个括号匹配算法,但是编译器总提醒我 “!=”: 没有从“const char [2]”到“int”的转换
操作数类型不兼容("char" 和 "const char *")
想问一下大佬们是为什么?,感觉写的也是对的,没有问题,为什么会出现这个操作数不兼容的问题/bool Judge(char a[], int length)
{
SqStack s;
InitStack(s);
char x;
for(int i = 0;i<=length;i++)
if (a[i] == "(" || a[i] == "[" || a[i] == "{") //**********************这里说的char和const char不兼容********************
{
Push(s, a[i]);
}
else if (a[i] == ")" || a[i] == "]" || a[i] == "}") //**********************这里说的char和const char不兼容********************
{
if (s.top == -1) //右单身
{
printf("匹配失败\n");
return false;
}
else
{
Pop(s, x);
if (x == "(" && a[i] != ")") //常规的匹配失败 //**********************这里说没有从const char【2】到int的转换********************
{
printf("匹配失败\n");
return false;
}
if (x == "[" && a[i] != "]") //常规的匹配失败
{
printf("匹配失败\n");
return false;
}
if (x == "{" && a[i] != "}") //常规的匹配失败
{
printf("匹配失败\n");
return false;
}
}
}
else //此种情况下是输入的值结束了的时候
{
if (s.top == -1)
{
printf("匹配成功\n");
return true;
}
else
{
printf("匹配失败\n"); //左单身
return false;
}
}
}
|