- •Строки стандартного класса string 2
- •Примеры использования методов строк-объектов 5
- •Стандартная библиотека шаблонов 14
- •Шаблонный класс для представления динамических одномерных массивов 35 Строки стандартного класса string
- •Операции
- •Методы класса string
- •Примеры использования методов строк-объектов Примеры работы со строками разных типов
- •Определение строк, присваивание, конкатенация, вычисление длины
- •Методы корректировки
- •Ввод-вывод
- •Доступ к элементу строки, метод at, метод copy
- •Методы сравнения
- •Методы поиска подстроки
- •Выделение подстроки, метод substr
- •Обеспечение ввода символов только из заданного набора
- •Подсчет количества вхождений слова в текст
- •Вывод вопросительных предложений
- •Стандартная библиотека шаблонов
- •Контейнеры
- •Общие методы и операции контейнеров Способы определения объекта для последовательного контейнера
- •Оценка числа элементов и размеров контейнера
- •Сравнение контейнеров
- •Присваивание контейнеров и обмен содержимым
- •Методы частного применения
- •Итераторы
- •Алгоритмы
- •Примеры Использование контейнера vector и его итераторов для вычисления диапазона копирования элементов массива
- •Использование контейнера vector при сортировке строк
- •Использование контейнера vector при считывании чисел из файла
- •Использование контейнера vector при считывании строк из файла
- •Использование контейнера list для реверса последовательности элементов
- •Демонстрация обратного итератора
- •Использование алгоритма find()для поиска заданного числа
- •Использование контейнера list при считывании чисел из файла
- •Использование контейнера list при считывании строк из файла
- •Использование контейнера list и потокового итератора при выводе последовательности структур на экран
- •Использование адаптера stack при считывании чисел из файла
- •Вычисление числа объектов с заданным значением
- •Поиск первого объекта с заданным значением
- •Поиск в массиве строк заданного имени
- •Использование потокового итератора при чтении вещественных чисел с клавиатуры и записи их в файл
- •Использование потокового итератора при чтении чисел из файла и выводе их на экран
- •Шаблонный класс для представления динамических одномерных массивов
Операции
Для объектов класса string допустимы операции
операция |
действие |
операция |
действие |
= |
присваивание |
> |
лексикографическое сравнение на больше |
+ |
конкатенация (сцепление) |
>= |
лексикографическое сравнение на больше или равно |
== |
лексикографическое сравнение на равенство |
[ ] |
индексация (обращение к элементу) |
!= |
лексикографическое сравнение на неравенство |
<< |
вывод |
< |
лексикографическое сравнение на меньше |
>> |
ввод |
<= |
лексикографическое сравнение на меньше или равно |
+= |
добавление, конкатенация с присвоением результата |
Для строк класса string (в отличие от строк старого стиля) &s[0] не равно s.
Методы класса string
метод |
назначение |
|
|
|
получение характеристик строк |
at (size_type n) |
доступ к n-му элементу строки |
size_type size() const; |
возвращает размер строки |
size_type length() const; |
возвращает размер строки,то же самое, что и size() |
size_type max_size() const; |
возвращает максимальную длину строки |
size_type capacity() const; |
возвращает объем памяти, занимаемый строкой (емкость) |
bool empty() const; |
возвращает истину, если строка пустая |
|
|
|
присваивание частей строк |
assign (const string& str) |
присваивает строку str вызывающей строке: s2.assign(s1); //равносильно s2=s1; |
assign (const string& str, size_type pos, size_type n); |
присваивает вызывающей строке n символов строки str, начиная с позиции pos; |
assign (const char*s, size_type n); |
присваивает вызывающей строке n символов строки s старого стиля; |
|
|
|
добавление части одной строки к другой |
append (const string& str) |
добавляет строку str к концу вызывающей строки, действие эквивалентно операции конкатенации +: s2. append (s1); //равносильно s2+s1; |
append (const string& str, size_type pos, size_type n); |
добавляет к вызывающей строке n символов строки str, начиная с позиции pos; |
append (const char*s, size_type n); |
добавляет к вызывающей строке n символов строки s старого стиля; |
|
|
|
вставка в одну строку части другой строки |
insert (size_type pos1, const string& str); |
вставляет строку str в вызывающую строку, начиная с позиции pos1 |
insert (size_type pos1, const string& str, size_type pos2, size_type n); |
вставляет в вызывающую строку, начиная с позиции pos1 n символов строки str, начиная с позиции pos2 |
insert (size_type pos, const char*s, size_type n); |
вставляет в вызывающую строку n символов строки s старого стиля; |
|
|
|
замена части строки |
replace (size_type pos1, size_type n1, const string& str); |
заменяет n1 элементов, начиная с позиции pos1 вызывающей строки, элементами строки str |
replace (size_type pos1, size_type n1, const string& str, size_type pos2, size_type n2); |
заменяет n1 элементов, начиная с позиции pos1 вызывающей строки, n2 элементами строки str, начиная с позиции pos2 |
replace (size_type pos1, size_type n1, const char*s, size_type n2); |
заменяет n1 элементов, начиная с позиции pos1 вызывающей строки, n2 элементами строки s старого стиля |
|
|
|
удаление части строки |
erase (size_type pos=0, size_type n = npos); npos-самое большое число >0 типа size_type, статический член класса string |
удаляет n элементов, начиная с позиции pos (если n не задано, то удаляется весь остаток строки) |
|
|
|
выделение части строки |
string substr (size_type pos=0, size_type n = npos) const; |
возвращает подстроку длиной n, начиная с позиции pos |
|
|
|
обмен содержимого двух строк |
swap(string& str); |
обменивает содержимое вызывающей строки и строки str |
|
|
|
поиск подстрок |
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 find_first_not_of (const string& str, size_type pos=0) const; |
ищет самое левое вхождение в вызывающую строку, начиная с позиции pos, символа, отличного от указанных в строке str; возвращает позицию вхождения, или npos , если вхождение не найдено |
size_type rfind (char c, size_type pos=0) const; |
ищет самое правое вхождение символа c, начиная с позиции pos |
size_type find_first_of (const string& str, size_type pos=0) const; |
ищет самое левое вхождение любого символа cтроки str, начиная с позиции pos |
size_type find_first_of (char c, size_type pos=0) const; |
ищет самое левое вхождение символа c в вызывающую cтрокуr, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено |
size_type find_last_of (const string& str, size_type pos=0) const; |
ищет самое правое вхождение любого символа cтроки str, начиная с позиции pos |
size_type find_last_of (char c, size_type pos=npos) const; |
ищет самое правое вхождение любого символа cтроки str, начиная с позиции pos, и возвращает позицию символа или npos, если вхождение не найдено |
|
|
|
сравнение частей строк |
int compare (const string& str)const |
сравнение двух строк целиком, возвращает значение <0, если вызывающая строка лексикографически меньше str, =0, если строки равны и >0, если вызывающая строка больше |
int compare (size_type pos1, size_type n1, const string& str) const |
сравнение со строкой str n1 символов вызывающей строки, начиная с позиции pos |
int compare (size_type pos1, size_type n1, const string& str, size_type pos2, size_type n2) const |
n1 символов вызывающей строки, начиная с позиции pos1, сравниваются с подстрокой строки str длиной n2 символов, начиная с позиции pos2 |
|
|
|
преобразование объектов типа string в строки старого стиля |
const char* c_str() const; |
возвращает указатель на С-строку, содержащую копию вызываемой строки; полученную С-строку нельзя пытаться изменить |
|
|
|
копирование в массив части вызывающей строки |
size_type copy (char* s, size_type n, size_type pos=0) const; |
копирует в символьный массив s n элементов вызывающей строки, начиная с позиции pos; нуль-символ в результирующий массив не заносится; метод возвращает количество скопированных элементов; |
size_type – синоним типа unsigned int, определенного в пространстве имен std;
npos – константа, определенная в string, задающая максимально возможное число (-1), которое в зависимости от контекста означает либо «все элементы» строки, либо отрицательный результат поиска.
