Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
20_STL_14.doc
Скачиваний:
18
Добавлен:
10.04.2019
Размер:
152.58 Кб
Скачать

Строковый класс

В С++ встроенный строковый тип отсутствует, но для более удобной работы со строками был разработан строковый класс.

Для того, чтобы можно было работать со строковым классом, необходимо подключить заголовочный файл <string>.

Строковый класс является классом-контейнером, поэтому поддерживает все алгоритмы библиотеки стандартных шаблонов.

Методы size() и length() возвращают количество символов в строке.

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

В классе string существует множество методов поиска подстрок и отдельных символов в строке табл.20.5.

Методы поиска в строке Табл. 20.5

Метод

Описание

find

Находит первое вхождение подстроки, начиная с начала строки

rfind

Находит первое вхождение подстроки, начиная с конца строки

find_first_of

Находит индекс первого вхождения любого из символов подстроки

find_last_of

Находит индекс последнего вхождения любого из символов подстроки

find_first_not_of

Находит индекс первого из символов, не входящих в подстроку

find_last_not _of

Находит индекс последнего из символов, не входящих в подстроку

Пример 20.4. Методы поиска в строке.

#include "stdafx.h"

#include <iostream>

#include <string>

#include <conio.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{ string ABC = "abcdefghijklmnopqrstuvwxyz";

string substr = "klmnop";

// поиск строковых литералов

cout << ABC.find("rstuv") << endl; // 17

cout << ABC.find("lkji") << endl; // -

// поиск строковых объектов

cout << ABC.find(substr) << endl; // 10

// с указанием начальной позиции поиска

cout << ABC.find(substr, 5) << endl; // 10

// поиск символов из представленного набора

cout << ABC.find_first_of("aeiou") << endl; // 0

cout << ABC.find_last_not_of("aeiou") << endl; // 25

_getch();

return 0;

}

Модификация строки

Модификация строки может заключаться в удалении, вставке или замене ее фрагмента. Эти действия выполняются с помощью методов, которые представлены в табл.20.6.

Методы модификации строк Табл. 20.6

Метод

Описание

append

Добавляет подстроку в конец строки

erase

Удаляет фрагмент из строки

insert

Вставляет подстроку в указанное место строки

replace

Заменяет одну подстроку на другую

Пример 20.5. Методы модификации строк.

#include "stdafx.h"

#include <iostream>

#include <string>

#include <conio.h>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])

{ setlocale(LC_ALL,"Russian");

string s1 = "Мишка очень любит мед!";

string s2 = "пчел!";

string s3 = " не ";

cout << s1 << endl;

s1.replace(18, 4, s2); // заменяем слово "мед" на "пчел"

s1.insert(11, s3); // добавляем слово "не" после слов //"Мишка очень"

cout << s1 << endl;

_getch();

return 0;

}