Шаг 394.
Библиотека STL.
Строение строковых классов. Построение С-строк и символьных массивов

    На этом шаге мы рассмотрим методы, используемые для построения C-строк и символьных массивов.

    Для построения указанных конструкций используются следующие методы:

  const char* string::c_str () const
Возвращает содержимое строки в виде С-строки (массив символов с присоединенным символом \0).

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

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

  const char* string::data () const
Возвращает содержимое строки в виде символьного массива.

    Возвращаемое значение содержит все символы строки без каких-либо модификаций или дополнений. В частности, символ \0 не включается в массив. Это означает, что в общем случае возвращаемое значение не является действительной С-строкой.

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

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

  size_type string::copy (char* buf, size_type buf_size) const
  size_type string::xopy (char* buf, size_type buf_size, size_type idx) const
Обе формы копируют не более buf_size символов строки (начиная с индекса idx) в символьный массив buf.

    Обе формы возвращают количество скопированных символов.

    Символ \0 к строке не присоединяется. После вызова содержимое buf может не быть действительной С-строкой.

    Перед вызовом необходимо проследить за том, чтобы массив buf имел достаточный размер; в противном случае вызов приводит к непредсказуемым последствиям.

    Если выполняется условие idx>size(), генерируется исключение out_of_range.

    Со следующего шага мы начнем знакомиться с модифицирующими операциями.




Предыдущий шаг Содержание Следующий шаг