과제의 경우 역 폴란드어 표기법이 적용됩니다. 이 예제에서는 다음을 사용합니다 : 2 3 8 * + $
$
은 표현식의 끝을 나타냅니다. 스택을 사용하여 대답을 출력합니다.연산자에 대한 cstring 검색
I가 사용되었다 :
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