《小甲鱼数据结构与算法》(栈和队列5)

利用链栈实现逆波兰计算器中的部分代码

while( isdigit(c) || c=='.' )  // 用于过滤数字
        {
            str[i++] = c;
            str[i] = '\0'; 
            if( i >= 10 )
            {
                printf("出错:输入的单个数据过大!\n");
                return -1;
            }
            scanf("%c", &c);//再输入一个字符
            if( c == ' ' ) 
            {
                d = atof(str);
                Push(&s, d);
                i = 0;
                break;
            }
        }

视频中讲到注释掉 str[i] = '\0 '会出错,但是我在geany编译器中注释掉这句之后依旧能成功运行。
另外,B站视频弹幕谈到‘空格’是如何进入到进入到while循环的,大概是没有注意到在while循环中scanf("%c", &c);这句代码是在已经获取到一个数字或小数点的情况下,再获取一个新的字符,之后再对这个字符判断是不是空格

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章