|
단순 계산이 아닌 중복된 연산자의 계산일 경우
Postfix라는 방식을 사용해야합니다.
스텍에 상수와 변수를 하나씩 넣어가면서 우선순위를 따져가며
계산을 하게됩니다.
Q & A에서 답변하기에는 버거운 내용입니다.
자료를 찾아보시거나 책을 공부하심이....
인터넷에 PreFix 나 PostFix 로 검색하면 관련 자료 많이 나옵니다.
공부중 님이 쓰신 글 :
: AnsiString receive_msg_t1 = msg;<-- 받아 온 메시지
: int receive_msg_t1_length = receive_msg_t1.Length();<-- 받아온 메시지의 길이
: AnsiString receive_msg_tex;<--문자열 잘나낼때 저장 하시위한 변수
: int *operat = new int[count];<-- 받아온 메시지의 사칙연산겟수만큼 배열을 잡아줍니다
: for(int i = 1; i<=receive_msg_t1_length;i++)
: {
: receive_msg_tex = receive_msg_t1.SubString(i,1);
: if(receive_msg_tex == "*")
: {
: operat[count] =i;
: }
: else if(receive_msg_tex == "/")
: {
: operat[count] =i;
: }
: else if(receive_msg_tex == "+")
: {
: operat[count] =i;
: }
: else if(receive_msg_tex == "-")
: {
: operat[count] =i;
: }
: }
: 연산자를 파악 후 연산자 앞의 내용과 뒤의 내용을 전부계산해주는건데요 잘 모르겠습니다
|