На этом шаге мы приведем общие сведения о классе 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-стиле.
На следующем шаге мы рассмотрим пример программы обработки строк.