Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
###Cpp_лкц1_1.09_11_#дляБАК#29_01_12.doc
Скачиваний:
67
Добавлен:
29.04.2019
Размер:
6.42 Mб
Скачать

Глава 11. Строки

291

Аналогично работает функция data, за тем исключением, что не добавляет в конец строки нуль-символ:

const char* data О const;

Функция сору копирует в массив s n элементов вызывающей строки, начиная с позиции pos. Нуль-символ в результирующий массив не заносится. Функция возвращает количество скопированных элементов:

size__type copy (char* s. size__type n, size_type pos = 0) const;

Пример использования функций изменения содержимого строк:

#include <string> #include <iostream> using namespace std; int main (){

string 51("прекрасная королева"). 52("ле"). 53("корова"):

cout « "si- "« si « endl;

cout « Hs2= "« s2 « endl;

cout « "s3= "« s3 « endl;

// Применение функции insert:

cout « "после insert:" « endl;

cout « "s3= " « s3.insert(4, s2) « endl;

cout « "s3= " « s3.insert(7, "к") « endl;

// Применение функции erase:

si.erased).3):

cout « "после erase:" « endl;

cout « "sl= " « sl.erase(12.2) « endl;

// Применение функции replace:

cout « "после replace:" « endl;

cout « "sl= " « sl.replace(0.3. s3. 4.2) « endl; } Результат работы программы:

sl= прекрасная королева

s2= ле

s3= корова

после insert:

s3= королева

s3= королевка

после erase:

sl= красная корова

после replace:

sl= лесная корова

Поиск подстрок

Для поиска в классе string предусмотрено большое разнообразие функций. Ниже приведены основные:

size_type find(const string& str. size__type pos « 0) const;

292

Часть III. Стандартная библиотека

Ищет самое левое вхождение строки str в вызывающую строку, начиная с позиции pos, и возвращает позицию строки или npos, если строка не найдена.

size_type find(char с, size_type pos = 0) const;

Ищет самое левое вхождение символа с в вызывающую строку, начиная с позиции pos, и возвращает позицию символа или npos, если символ не найден.

size_type rfind(const string& str, size_type pos = npos) const;

Ищет самое правое вхождение строки str в вызывающую строку, до позиции pos, и возвращает позицию строки или npos, если строка не найдена.

size_type rfind(char с, size_type pos = npos) const;

Ищет самое правое вхождение символа с в вызывающую строку, до позиции pos, и возвращает позицию символа или npos, если символ не найден.

size_type find_first_of(const string& str, size_type pos = 0) const;

Ищет самое левое вхождение любого символа строки str в вызывающую строку, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено.

size_type find_first_of(char с, size_type pos = 0) const;

Ищет самое левое вхождение символа с в вызывающую строку, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено.

size_type find_last_of(const string& str. size_type pos = npos) const;

Ищет самое правое вхождение любого символа строки str в вызывающую строку, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено.

size_type find_last_of(char с, size_type pos = npos) const;

Ищет самое правое вхождение символа с в вызывающую строку, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено.

size_type find_first_not_of(const string& str, size_type pos = 0) const;

Ищет самую левую позицию, начиная с позиции pos, для которой ни один символ строки str не совпадает с символом вызывающей строки.

size_type find_first_not_of(char с, size_type pos = 0) const;

Ищет самую левую позицию, начиная с позиции pos, для которой символ с не совпадает с символом вызывающей строки.

size_type find_last_not_of(const string& str, size_type pos = npos) const;

Ищет самую правую позицию до позиции pos, для которой ни один символ строки str не совпадает с символом вызывающей строки.

size_type find_last_not_of(char с, size_type pos = npos) const;

Ищет самую правую позицию до позиции pos, для которой символ с не совпадает с символом вызывающей строки.

Для каждой функции существует вариант, позволяющий искать в заданной строке подстроки старого стиля.