На этом шаге мы приведем общие сведения о классе string.
C++ не поддерживает встроенный строковый тип. Однако он предоставляет два способа обработки строк. Во-первых, для представления строк можно использовать традиционный символьный массив с завершающим нулем. Во-вторых, можно использовать объекты класса string.
В действительности класс string представляет собой специализацию более общего шаблонного класса basic_string. Существует две специализации типа basic_string:
Существует три причины для включения в C++ стандартного класса string:
Для использования строковых классов C++ необходимо включить в программу заголовок <string>.
Прототипы трех самых распространенных конструкторов класса string имеют следующий вид.
string(); string(const char *str); string(const string &str);
Первая форма конструктора создает пустой объект класса string. Вторая форма создает string-объект из строки с завершающим нулем, адресуемой параметром str. Эта форма конструктора обеспечивает преобразование из строки с завершающим нулем в объект типа string. Третья создает string-объект из другого string-объекта.
Для объектов класса string определены следующие операторы.
| Оператор | Описание |
|---|---|
| = | Присваивание |
| + | Конкатенация |
| += | Присваивание с конкатенацией |
| == | Равенство |
| != | Неравенство |
| < | Меньше |
| <= | Меньше или равно |
| > | Больше |
| >= | Больше или равно |
| [] | Индексация |
| << | Вывод |
| >> | Ввод |
Эти операторы позволяют использовать объекты типа string в обычных выражениях и избавляют программиста от необходимости вызывать такие функции, как strcpy() или strcat(). В общем случае в выражениях можно смешивать string-объекты и строки с завершающим нулем. Оператор "+" можно использовать для конкатенации одного string-объекта с другим или string-объекта со строкой, созданной в C-стиле.
На следующем шаге мы рассмотрим пример программы обработки строк.