Иллюстрированный самоучитель по практике программирования

Реализация на C++

Несколько меньше изменений потребуется вносить в endofline. Нам точно так же придется считывать ввод посимвольно, поскольку ни одна из стандартных функций ввода не может обработать все многообразие вариантов.

Иллюстрированный самоучитель по практике программирования › Интерфейсы › Реализация на C++

А вот как выглядит новая версия функции split:

Иллюстрированный самоучитель по практике программирования › Интерфейсы › Реализация на C++

Иллюстрированный самоучитель по практике программирования › Интерфейсы › Реализация на C++

Поскольку strcspn не работает со строками C++, нам надо изменить и split, и advquoted. Новая версия advquoted для поиска следующего вхождения символа-разделителя использует стандартную С++-функцию find_first_of. Вызов s.find_first_of (fieldsep, j) ищет в строке s первое вхождение любого символа из fieldsep, начиная с позиции ]. Если вхождение найдено не было, возвращается индекс, лежащий за концом строки, так что нам надо будет вернуть его обратно в должный диапазон.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.