Я создаю программу, которая следует определенным правилам для подсчета слов, слогов и предложений в данном текстовом файле.
Предложение - это набор слов, разделенных пробелом, который заканчивается на. или же ! или же ?
Однако это тоже предложение:
Greetings, earthlings..
Я подошел к этой программе так, чтобы сканировать текстовый файл по одному символу за раз, используя getchar (). Мне запрещено работать со всем текстовым файлом в памяти, это должен быть один символ или слово за раз.
Вот моя дилемма: с помощью getchar () я могу узнать, что является текущим персонажем. Я просто продолжаю использовать getchar () в цикле, пока он не найдет символ EOF. Но если предложение имеет несколько периодов в конце, оно все равно остается одним предложением. Это значит, что мне нужно знать, каким был последний персонаж перед тем, который я анализирую, и тем, после него. С моей точки зрения, это будет означать еще один вызов getchar (), но это создаст проблемы, когда я начну сканировать следующий символ (теперь он пропускает символ).
У кого-нибудь есть предложение относительно того, как я могу определить, что вышеприведенное предложение действительно является предложением?
Спасибо, и если вам нужно разъяснение или что-то еще, дайте мне знать.