Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование_на_С++_Ч2_ООП.doc
Скачиваний:
54
Добавлен:
22.02.2015
Размер:
633.34 Кб
Скачать

Операции

Ниже приведены операции со строками.

Таблица 5

Операции со строками

Операция

Действие

=

Присваивание

+

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

= =

Равенство

! =

Неравенство

<

Меньше

< =

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

>

Больше

> =

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

[ ]

Индексация

<<

Вывод

>>

Ввод

+ =

Добавление

Для строк типа string не соблюдается соответствие между адресом первого элемента строки и именем, как это было в случае строк старого стиля, т. е. &s[0] не равно s.

Кроме операции индексации для доступа к элементу строки определена функция at:

string s("Вася");

cout << s.at (1); // будет выведен символ а

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

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

assign (const string & str);

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

assign (const char * str, size_type n);

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

string s1 ("Вася"), s2;

s2.assign (s1);

Вторая функция присваивает вызывающей строке часть строки str, начиная с позиции pos. Если pos больше длины строки, порождается исключение out_of_range. Вызывающей строке присваивается n символов либо, если pos больше длины строки 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.

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

Преобразование строк

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

insert (size_type pos1, const string & str);

insert (size_type pos1, const string & str, size_type pos2, size_type n );

insert (size_type pos, const char* s, size_type n );

Первая функция вставляет строку str в вызывающую строку, начиная с позиции pos1 вызывающей строки (т. е. взывающая строка замещается строкой str, начиная с позиции pos1, а после str располагаются остальные символы вызывающей строки).

Вторая функция вставляет в вызывающую строку, начиная с позиции pos1, часть строки str длиной n символов, начиная с позиции pos2.

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

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

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

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

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

void clear ( );

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

replace (size_type pos1, size_type n1,const string & str);

replace (size_type pos1, size_type n1,const string & str, size_type pos2, size_type n2);

Здесь pos1 – позиция вызывающей строки, начиная с которой выполняется замена; n1 – количество удаляемых элементов, pos2 – позиция строки str, начиная с которой она вставляется в вызывающую строку; n2 – количество вставляемых элементов строки str.

Третья форма функции:

replace (size_type pos1, size_type n1,const char* s, size_type n2);

позволяет заменить n1 символов вызывающей строки на n2 символов строки старого типа s.

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

swap (string & s);

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

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

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

Для преобразования объектов типа string в строки старого стиля используется функция c_str:

const char* c_str ( ) const;

Функция возвращает константный указатель на оканчивающуюся нуль-символом строку.

Примеры

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

cout << s3.insert (4, s2) << endl; // получится: королева

cout << s3.insert (7, “к”) << endl; // получится: королевка

s1.erase (0,3); // получится: s1="красная королева"

cout << s1.erase (12, 2) << endl; // получится: красная корова