§ 9. Строковые величины
9.3. Поиск в строке
Современные компьютерные устройства позволяют достаточно быстро осуществлять поиск в тексте, используя для этого различные алгоритмы. Языки программирования предоставляют для алгоритмов широкий набор функций для работы с текстом. В классе string реализовано несколько различных функций, которые позволяют осуществлять поиск символа или подстроки (части строки) в строке. В качестве результата получаем номер первого вхождения искомого образца или значение –1, если образец не найден. Значение –1 поисковые функции возвращают только для компилятора MinGW. Универсальным возвращаемым значением, которое поддерживается компиляторами по стандарту, является константа string::npos. Функции могут осуществлять просмотр символов слева направо или справа налево. Некоторые из функций представлены в таблице:
Более подробно с функциями для работы со строками можно ознакомиться в приложении. В примере 9.6. показано, как применять указанные функции. Пример 9.7. Написать программу, которая вводит слово, а затем выводит его по одному символу в строке. Этапы выполнения задания I. Исходные данные: переменная s — исходное слово. II. Результат: слово на экране, каждый символ в отдельной строке. III. Алгоритм решения задачи.Описание переменных: s – string, n – int. 1. Вводим исходные данные. Пример 9.8. Написать программу, которая выводит на экран последний символ введенного слова и определяет, встречается ли этот символ в слове еще раз. Если встречается, то программа выводит индекс этого символа. Этапы выполнения задания I. Исходные данные: переменная s — введенное слово. II. Результат: последний символ в слове и соответствующее сообщение: встречается или не встречается. III. Алгоритм решения задачи. 1. Ввод исходных данных. |
Язык С++ является объектно-ориентированным языком. Тип данных string не является частью языка С++, а реализован как шаблонный класс, входящий в стандартную библиотеку STL. С понятием класса вы познакомитесь позже. При описании класса определяется не только способ хранения данных, но и методы обработки этих данных. Методы реализованы в виде функций, доступ к которым имеет любая переменная, являющаяся объектом данного класса. Для вызова функции ее имя указывают после имени переменной, разделяя их точкой. Например: s.length(), s.find('*') и др. В окне редактора кода список функций, относящихся к переменной типа string, может открываться, когда после имени переменной поставили точку. После чего функцию можно выбрать из списка. Для того чтобы список функций появился в Code::Bloks, нужно прописать дополнительное пространство имен: using namespace std::__cxx11; Пример 9.6. Примеры использования функций.
Пример 9.7. V. Программа:
VI. Тестирование. Пример 9.8. V. Программа:
IV. Тестирование. |