Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП.doc
Скачиваний:
77
Добавлен:
07.03.2016
Размер:
1.78 Mб
Скачать

Void main ()

{

string s1("прекрасная королева"), s2("ле"),

s3("корова");

cout <<"s1= " << s1 << endl;

cout <<"s2= " << s2 <<endl;

cout <<"s3= " << s3 <<endl;

// Застосування функції insert;

cout <<"після insert:" << endl;

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

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

// Застосування функції erase:

s1.erase(0,3);

cout << "після erase:" << endl;

cout << "s1= " << s1.erase(12, 2) << endl;

// Застосування функції replace;

cout << "після replace:" << endl;

cout << "s1= " << s1.replace(0, 3, s3, 4, 2) << endl;

}

Результат роботи програми:

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

s2= ле

s3- корова

після insert:

s3= королева

s3= королевка

після erase:

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

після replace:

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

7.2.3 Пошук підрядків

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

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

Шукає саме ліве входження рядка str в рядок, який викликає функцію, починаючи з позиції pos, і повертає позицію рядка або npos, якщо рядок не знайдений.

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

Шукає саме ліве входження символу c рядок, який викликає функцію, починаючи з позиції pos, і повертає позицію символу або npos, якщо символ не знайдений.

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

Шукає саме праве входження рядка str в рядок, який викликає функцію, до позиції pos, і повертає позицію рядка або npos, якщо рядок не знайдений.

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

Шукає саме праве входження символу c в рядок, який викликає функцію, до позиції pos, і повертає позицію символу або npos, якщо символ не знайдений.

size_type find_first_of(const string& str,

size_type pos = 0) const;

Шукає саме ліве входження будь-якого символу рядка str в рядок, який викликає функцію, починаючи з позиції pos, і повертає позицію символу або npos, якщо входження не знайдене.

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

Шукає саме ліве входження символу c в рядок, який викликає функцію, починаючи з позиції pos, і повертає позицію символу або npos, якщо входження не знайдене.

size_type find_last_of(const string& str,

size_type pos = npos) const;

Шукає саме праве входження будь-якого символу рядка str в рядок, який викликає функцію, починаючи з позиції pos, і повертає позицію символу або npos, якщо входження не знайдене.

size_type find_last_of(char c, 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 c, 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 c,

size_type pos = npos) const;

Шукає саму праву позицію до позиції pos, для якої символ с не збігається з символом рядка, який викликає функцію.

Для кожної функції існує варіант, що дозволяє шукати в заданому рядку підрядки старого стилю.

Приклад застосування функцій пошуку:

#include <string>

#include <iostream>

using namespace std;