2011-07-26 1 views
3

C++에서 할당 문 인터프리터 용 프로그램을 작성해야합니다. 숫자, 단어 및 연산자 (=, +, -, *, /)로 구성된 입력을 토큰 화해야하는 java.i 프로그램을 구현했습니다. java에서 스트림 토큰 라이저를 사용하여 토큰 화하고 입력을 구문 분석합니다. 다음 토큰으로 이동하는 1.control과 같은 함수가 필요합니다. 현재 토큰 (숫자 또는 단어)의 유형 2.type .like 함수 nexttoken() 및 ttype() nval() sval() java에서 pushback(). 저를 도와주십시오.자바에서 streamtokenizer를 대체 할 때 C++에서 사용할 수있는 클래스는 무엇입니까?

+0

RegExp를 사용해 보셨습니까? – Bitmap

+0

아니 .. 그게 뭐야? – user864408

+0

정규 표현식. – Bitmap

답변

2

Boost::Tokenizer은 C++ 용으로 매우 다재다능한 토크 나이저이며 쉽게 처리해야합니다.

+0

나는 그걸 보았습니다. 그러나 – user864408

+1

@ user864408에서 nextToken()과 ttype() 같은 메소드를 찾을 수 없습니다. C++로 작성되었습니다. Java와 같은 규칙을 사용하지 않을 것입니다. 반복기를 사용하는데, 이는 반복적으로 C++을 사용하는 경우 이해해야하는 개념입니다. –

+2

C++ 반복기에 익숙합니까? Boost :: tokenizer는 nextToken()과 같은 함수가 아닌 동작을 기반으로 작동합니다. 문서에는 토큰을 추출하는 데 사용하는 좋은 예가 있습니다. 그것은 타입 함수를 가지고 있지 않지만 각 타입의 std :: vectors를 생성 한 다음 std :: find를 사용하여 그 중 하나인지를 확인할 수 있습니다. 예 : C++ 0x,'std :: vector ops = { "" ""+ ","- ","* ","/ "}; std :: find (ops.begin(), ops.end(), tok)! = ops.end(); "tok"가 연산자 인 경우 true를 반환합니다. – Sean

관련 문제