Основные манипуляции над строками



 

Чтобы присвоить одну строку другой, используйте функцию assign() . Вот как выглядят два возможных формата ее реализации.

 

 

Первый формат позволяет присвоить вызывающему объекту num символов из строки, заданной параметром strob , начиная с индекса start . При использовании второго формата вызывающему объекту присваиваются первые num символов строки с завершающим нулем, заданной параметром str . В каждом случае возвращается ссылка на вызывающий объект. Конечно, гораздо проще для присвоения одной полной строки другой использовать оператор "=" . О функции‑члене assign() вспоминают, в основном, тогда, когда нужно присвоить только часть строки.

С помощью функции‑члена append() можно часть одной строки присоединить в конец другой. Два возможных формата ее реализации имеют следующий вид.

 

 

Здесь при использовании первого формата num символов из строки, заданной параметром strob , начиная с индекса start , будет присоединено в конец вызывающего объекта. Второй формат позволяет присоединить в конец вызывающего объекта первые num символов строки с завершающим нулем, заданной параметром str . В каждом случае возвращается ссылка на вызывающий объект. Конечно, гораздо проще для присоединения одной полной строки в конец другой использовать оператор Функция же append() применяется тогда, когда необходимо присоединить в конец вызывающего объекта только часть строки.

Вставку или замену символов в строке можно выполнять с помощью функций‑членов insert() и replace() . Вот как выглядят прототипы их наиболее употребительных форматов.

 

 

Первый формат функции insert() позволяет вставить строку, заданную параметром strob , в позицию вызывающей строки, заданную параметром start . Второй формат функции insert() предназначен для вставки num символов из строки, заданной параметром strob , начиная с индекса insStart , в позицию вызывающей строки, заданную параметром start .

Первый формат функции replace() служит для замены num символов в вызывающей строке, начиная с индекса start , строкой, заданной параметром strob . Второй формат позволяет заменить orgNum символов в вызывающей строке, начиная с индекса start , replaceNum символами строки, заданной параметром strob , начиная с индекса replaceStart . В каждом случае возвращается ссылка на вызывающий объект.

Удалить символы из строки можно с помощью функции erase() . Один из ее форматов выглядит так:

 

 

Эта функция удаляет num символов из вызывающей строки, начиная с индекса start . Функция возвращает ссылку на вызывающий объект.

Использование функций insert() , erase() и replace() демонстрируется в следующей программе.

 

 

Результаты выполнения этой программы таковы.

 

Поиск в строке

 

В классе string предусмотрено несколько функций‑членов, которые осуществляют поиск. Это, например, такие функции, как find() и rfind() . Рассмотрим прототипы самых употребительных версий этих функций.

 

 

Функция find() , начиная с позиции start , просматривает вызывающую строку на предмет поиска первого вхождения строки, заданной параметром strob . Если поиск успешен, функция find() возвращает индекс, по которому в вызывающей строке было обнаружено совпадение. Если совпадения не обнаружено, возвращается значение npos . Функция rfind() выполняет то же действие, но с конца. Начиная с позиции start , она просматривает вызывающую строку в обратном направлении на предмет поиска первого вхождения строки, заданной параметром strob (т.е. она находит в вызывающей строке последнее вхождение строки, заданной параметром strob ). Если поиск прошел удачно, функция rfind() возвращает индекс, по которому в вызывающей строке было обнаружено совпадение. Если совпадения не обнаружено, возвращается значение npos .

Рассмотрим короткий пример использования функции find() .

 

 

Программа генерирует такие результаты.

 

Сравнение строк

 

Чтобы сравнить полное содержимое одного string ‑объекта с другим, обычно используются описанные выше перегруженные операторы отношений. Но если нужно сравнить часть одной строки с другой, вам придется использовать функцию‑член compare() .

 

 

Функция compare() сравнивает с вызывающей строкой num символов строки, заданной параметром strob , начиная с индекса start . Если вызывающая строка меньше строки strob , функция compare() возвратит отрицательное значение. Если вызывающая строка больше строки strob , она возвратит положительное значение. Если строка strob равна вызывающей строке, функция compare() возвратит нуль.

 


Дата добавления: 2018-09-22; просмотров: 309; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!