Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_na_voprosy_k_ekzamenu_po_C.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
241.66 Кб
Скачать

39. Операции класса string

Ниже приведены допустимые для объектов класса string операции:

Операция

Действие

Операция

Действие

=

присваивание

>

больше

+

конкатенация

>=

больше или равно

==

равенство

[ ]

индексация

!=

неравенство

<<

вывод

<

меньше

>>

ввод

<=

меньше или равно

+=

добавление

Размеры строк устанавливаются автоматически так, чтобы объект мог содержать присваиваемое ему значение. Кроме операции индексации, для доступа к элементу строки определена функция at:

string s("Bacя");

cout « s.at(l); // Будет выведен символ а

Если индекс превышает длину строки, порождается исключение out_of_range.

40. Функции работы со строками. Присваивание и добавление частей строк

Для присваивания части одной строки другой служит функция assign:

assign(const string& str);

assign(const string& str, size_type pos, size_type n):

assign(const char* s, size_type n);

Первая форма функции присваивает строку str вызывающей строке, при этом действие функции эквивалентно операции присваивания:

string s1(“Вася”). s2;

s2.assign(sl); // Равносильно s2 = s1

Вторая форма присваивает вызывающей строке часть строки str, начиная с позиции pos. Если pos больше длины строки, порождается исключение out_of_range. Вызывающей строке присваивается n символов, либо, если pos + n больше, чем длина строки str, все символы до конца строки str.

Третья форма присваивает вызывающей строке n символов строки s старого типа.

Для добавления части одной строки к другой служит функция append:

append(const string& str );

append(const string& str. size_type pos. size_type n);

append(const char* s. size_type n);

Первая форма функции добавляет строку str к концу вызывающей строки, при этом действие функции эквивалентно операции конкатенации (+).

Вторая форма добавляет к вызывающей строке часть строки str, начиная с позиции pos. Если pos больше длины строки, порождается исключение out_of_range. К вызывающей строке добавляется n символов, либо, если pos + n больше, чем длина строки str, все символы до конца строки str. Если длина результата больше максимально допустимой длины строки, порождается исключение length_error.

Третья форма добавляет к вызывающей строке n символов строки s старого типа.

41. Функции работы со строками. Преобразование строк. Поиск подстрок. Сравнение частей строк

Для вставки в одну строку части другой строки служит функция insert:

insert(size__type pos1. const string& str );

Функция вставляет строку str в вызывающую строку, начиная с позиции pos1 вызывающей строки. Иными словами, вызывающая строка замещается строкой, которая состоит из первых pos1 символов вызывающей строки, за которыми следует строка str целиком, а после нее располагаются остальные символы вызывающей строки. Если pos1 больше длины строки, порождается исключение out_of_range. Если длина результата больше максимально допустимой длины строки, порождается исключение length__error.

Для удаления части строки служит функция erase:

erase(size_type pos = 0, size_type n = npos);

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

Очистку всей строки можно выполнить с помощью функции clear:

void clear();

Для замены части строки служит функция replace:

replace(size_type posl, size_type nl, const str1ng& str);

Для обмена содержимого двух строк служит функция swap:

swap(strings s);

Для выделения части строки служит функция substr:

string substr(size_type pos = 0, size_type n = npos) const;

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

  • size__type find(const string& str., size_type pos = 0) const - Ищет самое левое вхождение строки str в вызывающую строку, начиная с позиции pos, и возвращает позицию строки

или npos, если строка не найдена.

  • size_type find(char с, size_type pos = 0) const; - Ищет самое левое вхождение символа с в вызывающую строку, начиная с позиции pos, и возвращает позицию символа или npos, если символ не найден и др.

Если требуется сравнивать части строк, используется функция compare:

int compare(const string& str) const; - функция сравнивает две строки целиком и возвращает значение, меньшее (), если вызывающая строка лексикографически меньше str, равное нулю, если строки одинаковы, и большее нуля — если вызывающая строка больше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]