對於賦值,我們給出了一個反向波蘭表示式。對於這個例子,我將使用:2 3 8 * + $
$
用於表示表達式的結尾。使用堆棧,我們輸出答案。搜索運算符的cstring
我一直在使用:
getline(cin, input, '&');
input.c_str();
方程中閱讀,然後把它變成一個C_STRING所以我可以看看輸入的單個元素。
之後,我需要檢查幾件事情。如果元素是數字,我需要將它推到堆棧上。如果是空格,我需要跳過它。
if (isdigit(input[i]))
{
push();
i++;
}
else if (isspace(input[i]))
{
i++;
}
現在是我卡住了。如果我碰到一個操作員(在這種情況下爲*
),我需要彈出堆棧頂部的兩個元素並「操作它們」並將結果返回到堆棧。但是,我不知道任何能夠讓我認識到他們是經營者的事情。這可能是一個愚蠢的問題,但幫助將不勝感激。
只是手邊,你的輸入是否保證被空白分開? – WhozCraig
@WhozCraig Yessir,每個值之間總會有一個空格。 – ViscousRandom
如果你輸入包含多位數字:'12 321 + $'? – PiotrNycz