《小甲魚數據結構與算法》(棧和隊列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);這句代碼是在已經獲取到一個數字或小數點的情況下,再獲取一個新的字符,之後再對這個字符判斷是不是空格

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