Глава 4 Строки и текст
Глава 4
Строки и текст
4.0. Введение
Эта глава содержит рецепты работы со строками и текстовыми файлами. Большая часть программ на C++ независимо от сферы их применения в той или иной степени работает со строками и текстовыми файлами. Однако, несмотря на различия в сферах применения, требования к ним часто одни и те же: для строк — обрезка, дополнение, поиск, разбиение и т.п.; для текстовых файлов — перенос строк, переформатирование, чтение файлов с разделителями и др. Следующие рецепты предоставляют решения многих из часто встречающихся задач, не имеющих готовых решений в стандартной библиотеке С++.
Стандартная библиотека переносима, стандартизована и в общем случае не менее эффективна, чем самодельное решение, так что в следующих примерах я предпочитаю ее коду, написанному с нуля. Она содержит богатый раздел для работы со строками и текстом, большая часть которого заключена в шаблоне классов basic_string (для строк), basic_istream и basic_ostream (для входных и выходных текстовых потоков). Почти все методики, описанные в этой главе, используют или расширяют эти шаблоны классов. В тех случаях, когда они не делают того, что требуется, я использую другую часть стандартной библиотеки, содержащей общие готовые решения: алгоритмы и контейнеры.
Строки используют все, так что если что-то, что вам требуется, отсутствует в стандартной библиотеке, то велика вероятность, что это уже написано кем-то другим. Библиотека Boost String Algorithms (алгоритмы для работы со строками), написанная Паволом Дробой (Pavol Droba), заполняет большинство пробелов стандартной библиотеки, реализуя большую часть алгоритмов, которые могут понадобиться в различных ситуациях, и делает это переносимым и эффективным способом. Для получения дополнительной информации и документации по библиотеке String Algorithms обратитесь к проекту Boost по адресу www.boost.org. Библиотека String Algorithms и решения, приводимые в этой главе, в некоторых частях дублируют друг друга. В большинстве случаев я привожу примеры или, по крайней мере, упоминаю алгоритмы Boost связанные с приводимым решением.
Для большинства примеров приводится как версия с использованием шаблонов, так и без них. Это сделано по двум причинам. Во-первых, большая часть областей стандартной библиотеки, использующих символьные данные, — это шаблоны классов, параметризованных по типу символов — узкие (char) или широкие (wchar_t). Следуя этой модели, можно повысить совместимость программного обеспечения со стандартной библиотекой. Во-вторых, работаете ли вы со стандартной библиотекой или нет, шаблоны классов и функций предоставляют прекрасную возможность написания программного обеспечения, не привязанного к конкретной ситуации. Однако, если шаблоны не нужны, используйте нешаблонные версии, хотя, если вы новичок в шаблонах, я рекомендую вам поэкспериментировать с ними.
Стандартная библиотека очень активно использует шаблоны, а для того, чтобы оградить программистов от многословного синтаксиса шаблонов, использует typedef. В результате термины basic_string, string и wstring используются как взаимозаменяемые, поскольку то, что верно для одного из них, обычно верно и для двух других, string и wstring являются typedef для basic_string<char> и basic_string<wchar_t>.
Наконец, вы, вероятно, заметите, что ни один из рецептов этой главы не использует строк в стиле С, т.е. заканчивающихся нулем символьных массивов. Стандартная библиотека предоставляет такую богатую, эффективную и расширяемую поддержку строк С++, что использование строковых функций в стиле С (которые поддерживаются с целью обратной совместимости) — это уход от гибкости, безопасности и общей природы того, что дается бесплатно компилятором: классов строк С++.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Альтернативный текст
Альтернативный текст С атрибутами, отвечающими за оформление картинки, все понятно, но существуют еще атрибуты, напрямую не влияющие на отображение картинки, но тем не менее сильно облегчающие жизнь посетителям сайта.Иногда получается так, что картинка не загружается,
Текст
Текст Добавить текст к слайду просто – для этого достаточно выбрать пункт меню «Вставить – Текст» или нажать на иконку с заглавной буквой Т на панели инструментов. В появившейся рамке можно вводить слова и предложения, пользуясь стандартными инструментами
Глава 26 Синтаксический анализ параметров командной строки
Глава 26 Синтаксический анализ параметров командной строки Многие Linux-программы позволяют задавать параметры командной строки. Эти параметры выполняют самые разнообразные функции, однако имеют практически одинаковую синтаксическую структуру. Короткие параметры
Popup («текст сообщения», «количество секунд», «текст заголовка», «тип окна»)
Popup («текст сообщения», «количество секунд», «текст заголовка», «тип окна») Метод отображает текстовое сообщение, указанное в первом входном параметре. При этом, кроме текста сообщения нужно указать следующие входные параметры.? Количество секунд — определяет
Текст
Текст В типографике существует множество шрифтов, однако в веб-дизайне для набора текстов веб-страниц используется ограниченное их количество.Как правило, это:? Georgia;? Times New Roman;? Arial;? Verdana;? Comic Sans MS.Шрифты подразделяются на шрифты с засечками (типа Georgia, Times New Roman), шрифты без
Текст
Текст Перейдите на вкладку Текст (рис. 12.3) и настройте следующие параметры.• Чтобы изменить цвет текста, выделите мышью текст в рабочем окне или в списке на вкладке Текст и из раскрывающегося списка Цвет выберите нужный.• Чтобы изменить расположение текста в рабочем
Текст
Текст В этой вкладке есть всякие полезные (или просто красивые) штуки, которые вы может вставить в текст.НадписьКогда мы рассматривали фигуры, то уже встречались с надписями. Это фигура, внутри которой есть текст.Щелкните на кнопке Надпись. В появившемся списке выберите
Глава 4 Текст и таблицы
Глава 4 Текст и таблицы • Работа с текстом• Создание и изменение таблиц• РезюмеЦель этой главы – освоение принципов работы c текстом и таблицами в AutoCAD 2010. В ней рассмотрены следующие основные понятия: создание и редактирование однострочного и многострочного текста,
Глава 2. Строки
Глава 2. Строки Когда-то элементарными кирпичиками мироздания считались атомы, потом протоны, потом кварки. Теперь таковыми считаются струны[7]. Дэвид Гросс, профессор теоретической физики, Принстонский университет В начале 1980-х годов один профессор информатики, начиная
Глава 34. Как проверить и отредактировать распознанный текст
Глава 34. Как проверить и отредактировать распознанный текст После завершения распознавания результат появляется в диалоговом окне Текст. Диалоговое окно Текст — это встроенный редактор программы FineReader; в нем вы имеете возможность проверить результаты распознавания и
Многострочный текст
Многострочный текст Длинные сложные надписи оформляются как многострочный текст с помощью команды MTEXT. Многострочный текст обычно вписывается в заданную ширину абзаца, но его можно растянуть и на неограниченную длину. В многострочном тексте допускается форматирование
Глава 4 Текст и таблицы
Глава 4 Текст и таблицы Работа с текстомСоздание и изменение таблицРезюмеЦель этой главы – освоение принципов работы c текстом и таблицами в AutoCAD 2009. В ней рассмотрены следующие основные понятия:• управление отображением текста с помощью стилей и шрифтов;• создание и
Урок 12. Текст и строки
Урок 12. Текст и строки Использовать числа в ActionScript несложно. Вы можете прибавлять, вычитать и выполнять другие операции с числами. Со строками также можно выполнить множество операций. Операции со строками являются важным шагом в изучении программирования.Одна из
Текст
Текст Экранная клавиатураЭкранная клавиатура предназначена для ввода печатного текста с помощью маркера и является аналогом компьютерной клавиатуры. Вызов этого инструмента осуществляется щелчком по пиктограмме Текстовые инструменты на панели mimio Инструменты
У6.6 Текст
У6.6 Текст Рассмотрите понятие текста, обрабатываемого текстовым редактором. Задайте это понятие в виде АТД. (Это задание оставляет достаточно много свободы спецификатору, не забудьте включить содержательное описание тех свойств текста, которые вы избрали для
Глава 9 Ошибки форматирующей строки
Глава 9 Ошибки форматирующей строки В этой главе обсуждаются следующие темы: • Уязвимость форматирующей строки • Пример уязвимой программы • Тестирование программ способом случайной форматирующей строки • Программа атаки с использованием форматирующей строки ·