572 __ ________________ _______Часть IV. Новые возможности C++

firstAlterString[1] = ":";

cout « firstAlterString « endl;

firstAlterStringt(1) = ".";

cout « firstAlterString « endl;

Результат будет следующим:

»

1: Эта строка будет подменена. 1. Эта строка будет подменена.

Обратите внимание на возможность использования как операции [ ], так и операции;). Такой же результат получится, если использовать функцию

put_at:

firstAlterString.put_at(I, ' : ' ) ;

Если вы хотите выделить из строки один символ, то используйте операцию

[ ], () ИЛИ ФУНКЦИЮ get_at:

cout « firstAlterString.get_at(l) « endl; •

Результатом будет

Сравнение строк

В дополнение к возможностям модификации строк, строковый класс должен иметь простой способ сравнивать строки. Сравнение строк, среди других применений, наиболее важно при сортировке, которая используется даже чаще, чем сортировка чисел. Чтобы убедиться в этом, достаточно открыть телефонный справочник.

Строковый класс ANSI C++ поддерживает все возможные операции сравнения: ==, !=, <, >, <= и >=. В следующих примерах будут использованы строки из предыдущего раздела:

string firstAlterString("1. Эта строка будет подменена.");

string secondAlterString("2. Эта тоже будет изменена. Нравится ей это или нет."

Попробуйте предсказать результат выполнения следующих операторов:

cout « (firstAlterString == secondAlterString) « endl;

cout « (firstAlterString < secondAlterString) « endl;

cout « (firstAlterString.compare(secondAiterString)) « endi;

f firstAlterString.remove(0, 3);

cout « (firstAlterString-compare(secondAlterString, 3, 3)) « endl;

Первое сравнение проверяет, являются ли firstAlterString и secondAlterString идентичными. Они, очевидно, не являются таковыми и результатом сравнения будет ноль, означающий ложность утверждения.