문제

주어진 텍스트 파일에서 단어, 음절 및 문장의 수를 초래하기 위해 특정 규칙을 따르는 프로그램을 만들고 있습니다.

문장은 a에서 끝나는 공백으로 분리 된 단어 모음입니다. 또는 ! 또는 ? 그러나 이것은 또한 문장입니다.

Greetings, earthlings..

내가이 프로그램에 접근하는 방식은 getChar ()를 사용하여 한 번에 한 문자를 텍스트 파일을 스캔하는 것입니다. 메모리에서 전체 텍스트 파일로 작업 할 수 없으므로 한 번에 하나의 문자 또는 단어 여야합니다.

다음은 내 딜레마입니다. getchar ()를 사용하여 현재 문자가 무엇인지 알 수 있습니다. EOF 문자를 찾을 때까지 루프에서 getChar ()를 계속 사용합니다. 그러나 문장이 끝에 여러 기간이 있다면 여전히 단일 문장입니다. 이는 내가 분석하는 마지막 캐릭터와 그 이후의 캐릭터가 무엇인지 알아야한다는 것을 의미합니다. 내 생각을 통해 이것은 또 다른 getChar () 호출을 의미하지만, 다음 캐릭터에서 스캔 할 때 문제가 발생합니다 (이제 캐릭터를 건너 뛰었습니다).

위의 문장이 실제로 문장이라고 판단 할 수있는 방법에 대한 제안이 있습니까?

감사합니다. 설명이나 다른 것이 필요한 경우 알려주세요.

도움이 되었습니까?

해결책

당신은 매우 간단한 것을 구현하면됩니다 상태 머신. 문장의 끝을 찾으면 새 문장의 시작을 찾을 때까지 해당 상태에 남아 있습니다 (일반적으로 이것은.! 또는?와 같은 터미네이터 이외의 백인이 아닌 공간 캐릭터가 될 것입니다.

다른 팁

확장 가능한 문법이 필요합니다. 예를 들어 정규 표현식을 살펴보고 하나를 만들려고 노력하십시오.

일반적으로 인간 언어는 다양하고 어리석은 일이 아니며 특히 언어를 분석하거나 다른 언어를 구어체하는 경우 쉽게 구분할 수 없습니다. 일부 언어에서는 단어와 문장의 구별이 무엇인지 명확하지 않을 수도 있습니다. ~이다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top