猪头少年.zm 发表于 2023-1-18 21:39:34

括号匹配算法的一些小问题

简简单单的一个括号匹配算法,但是编译器总提醒我        “!=”: 没有从“const char ”到“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 == "(" || a == "[" || a == "{")            //**********************这里说的char和const char不兼容********************
                {
                        Push(s, a);
                }
                else if (a == ")" || a == "]" || a == "}")      //**********************这里说的char和const char不兼容********************
                {
                        if (s.top == -1)      //右单身
                        {
                                printf("匹配失败\n");
                                return false;
                        }
                        else
                        {
                                Pop(s, x);
                                if (x == "(" && a != ")")//常规的匹配失败   //**********************这里说没有从const char【2】到int的转换********************
                                {
                                        printf("匹配失败\n");
                                        return false;
                                }
                                if (x == "[" && a != "]")//常规的匹配失败
                                {
                                        printf("匹配失败\n");
                                        return false;
                                }
                                if (x == "{" && a != "}")   //常规的匹配失败
                                {
                                        printf("匹配失败\n");
                                        return false;
                                }
                        }
                }
                else      //此种情况下是输入的值结束了的时候
                {
                        if (s.top == -1)            
                        {
                                printf("匹配成功\n");
                                return true;
                        }
                        else
                        {
                                printf("匹配失败\n");   //左单身
                                return false;
                        }
                }
}

ba21 发表于 2023-1-18 21:40:56

"{" 字符串
'{' 字符

猪头少年.zm 发表于 2023-1-18 21:46:15

ba21 发表于 2023-1-18 21:40
"{" 字符串
'{' 字符

哦哦哦,谢谢大佬。我最基本的东西忘记了,看起来我确实需要复习一下
页: [1]
查看完整版本: 括号匹配算法的一些小问题