Строение строковых классов. Построение С-строк и символьных массивов

   
На этом шаге мы рассмотрим методы, используемые для построения 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.

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



Вы можете оставить комментарий, или Трекбэк с вашего сайта.

Оставить комментарий