Шрифт:
Это удобно, когда мы хотим устранить различия между символами, набранными в разных регистрах. Например, если пользователь ввел слова
11.7. Использование нестандартных разделителей
В этом разделе мы рассмотрим гипотетические примеры использования потоков i
As planned, the guests arrived; then
то получали слова
Это слова невозможно найти в словаре: “planned,” и “arrived;” — это вообще не слова. Это набор букв, состоящий из слов, к которым присоединены лишние и не относящиеся к делу знаки пунктуации. В большинстве случаев мы должны рассматривать знаки пунктуации как разделители. Как же избавиться от этих знаков пунктуации? Мы могли бы считать символы, удалить знаки пунктуации или преобразовать их в пробелы, а затем ввести “очищенные” данные снова.
Применив такой способ, получаем желаемый результат.
К сожалению, этот код слишком сложен и излишне специализирован. А что делать, если знаки пунктуации определены иначе? Опишем более общий и полезный способ удаления нежелательных символов из потока ввода. Как должен выглядеть этот поток? Как должен выглядеть наш код? Может быть, так?
Как определить поток, работающий так, как поток
Слова
Для того чтобы сделать это, можно определить класс. Он должен принимать символы из потока