C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[64427] Re:계산기 소스 만드는 과정 중 다시 한번 문의 드립니다.
송신영 [palindrome] 1270 읽음    2011-05-24 09:39
원하는 문자열을 구분하는 기술을 공부하셔야할듯합니다.
일단 수학적인 기호, 공백, 가로등이 아니면 숫자이기 때문에
해당 기호가 아닐경우 버퍼에 넣고 기호가 나타나면 버퍼에 넣었던 것을
atoi 등의 함수를 이용하든 아니면 문자를 숫자로 바꾸는 함수를 따로 만드시든 하여
숫자로 변경하여 스텍에 저장하시면됩니다.

서덕만 님이 쓰신 글 :
: 아래 소스는 일의자리 숫자까지밖에 계산이 되지 않습니다.
:
: 입력받은 어떤 숫자로나 계산이 가능하게끔 수정하고 싶은데 어떻게 수정을 해야 좋을 지 팁 부탁드립니다.
:
: (Ex. 입력을 문자 따로 숫자따로 받거나 혹은 입력받은 문자열에서 숫자를 구분하는데 십의자리나 백의자리도 구분 할수 있는 방법(지금은 100을 입력하면 1,0,0 이렇게 구분하는 거 같습니다..ㅠㅠ) 부탁드립니다!
:
: InitializeStack();
: gets(buf);
:    
: len = strlen(buf);
: i = 0;
: while(i < len) {
:     c = buf[i++];  
:    
:     if(c == ' ')
:         continue;
:     else if(c <= '9' && c >= '0')
:         OperandPush(c-'0');          
:     else if( c == '+' || c == '-' || c == '*' || c == '/' ) {
:         if(IsEmptyOperatorStack())
:             OperatorPush(c);
:         else {
:             opr = OperatorPop();
:             if(GreaterOpr(opr , c) ){
:                 opn2 = OperandPop();
:                 opn1 = OperandPop();
:                
:                 opn1 = Calculate(opn1, opn2 , opr);
:                 OperandPush(opn1);
:                 OperatorPush(c);
:                 }
:             else {
:                 OperatorPush(opr);
:                 OperatorPush(c);

+ -

관련 글 리스트
64421 계산기 소스 만드는 과정 중 다시 한번 문의 드립니다. 서덕만 967 2011/05/23
64427     Re:계산기 소스 만드는 과정 중 다시 한번 문의 드립니다. 송신영 1270 2011/05/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.