|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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;
- }
- }
- }
复制代码
|
|