ОБЪЯВЛЕНИЕ И ИНИЦИАЛИЗАЦИЯ СТРОК
Краткие итоги
Ключевые термины
Адрес строки – это указатель на блок непрерывной области памяти, с которого начинает располагаться массив символов.
Строки как параметры функций – это описание передачи значений строк в функции как массив символов или указатель типа char.
Указатель на строку – адрес начала расположения строки в памяти.
1. В силу специфики представления строк в виде символьного массива сами строки, строковые константы, заключенные в кавычки, и указатели на строки обрабатываются эквивалентно.
2. Строки передаются в функции в качестве параметров как массивы символов или как указатели типа char.
3. Обращение к конкретному элементу строки можно осуществить посредством адресации индексированного имени строки.
4. При формировании строки без использования стандартных функций требуется дописывать символ конца строки.
5. С помощью указателей на константы можно защитить строку от изменений.
6. Копирование строк с помощью указателей осуществляется через объявление нового указателя, адресующего область памяти, занимаемую строкой или подстрокой.
Класс string
Минимальный набор операций, которыми должен обладать класс string:
· инициализация массивом символов (строкой встроенного типа) или другим объектом типа string. Встроенный тип не обладает второй возможностью;
· копирование одной строки в другую. Для встроенного типа приходится используется функция strcpy();
· доступ к отдельным символам строки для чтения и записи. Во встроенном массиве для этого применяется операция взятия индекса или косвенная адресация;
· сравнение двух строк на равенство. Для встроенного типа используется функция strcmp();
· конкатенация двух строк, получая результат либо как третью строку, либо вместо одной из исходных. Для встроенного типа применяется функция strcat(), однако чтобы получить результат в новой строке, необходимо последовательно задействовать функции strcpy() и strcat();
· вычисление длины строки. Узнать длину строки встроенного типа можно с помощью функции strlen();
· возможность узнать, пуста ли строка. Класс string стандартной библиотеки С++ реализует все перечисленные операции (и гораздо больше, как мы увидим вглаве 6).
Для того чтобы использовать объекты класса string, необходимо включить соответствующий заголовочный файл:
#include <string>
Первая форма определения строки, представлена объектом типа string и инициализированной строкой символов:
string st ( "Цена пакета молока\n" );
Вторая форма определения строки задает пустую строку:
string st2; // пустая строка