Программирование >>  Операторы преобразования типа 

1 ... 156 157 158 [ 159 ] 160 161 162 ... 239


В стандарте поведение этой формы функции compare() определяется иначе: в нем сказано, что cstr интерпретируется не как С-строка, а как символьный массив, в качестве длины которого передается значение npos (для чего вызывается следующая форма функции сотрагеО с передачей npos в дополнительном параметре). Это ошибка в стандарте, поскольку такой вызов всегда порождал бы исключение length error.

int string: .compare (const char* cstr) const

О Сравнивает символы *this с символами С-строки cstr.

О Сравнение выполняется так же, как в приведенном выше описании compaгeC5t).

int strmg: ;compare (size type idx, size type len, const char* cstr) const

О Сравнивает не более len символов строки *this, начиная с индекса idx, со всеми символами С-строки cstr.

О Сравнение выполняется так же, как в приведенном выше описании compare(5t).

int string::compare (size type idx, size type len.

const char* chars. size type charsjen) const

О Сравнивает не более len символов строки *this, начиная с индекса idx, с charsjen символами символьного массива chars.

О Сравнение выполняется так же, как в приведенном вьппе описании compare(.sfr).

О Символьный массив chars должен содержать не менее charsjen символов, которые могут иметь произвольные значения (символ \0 не имеет особой интерпретации).

О Если аргумент charsjen равен stn>3g::npos, генерируется исключение length error.

Обращение к символам

chare stry/?g: :operator[l (slze type idx) char stryng;:operator[] (size type idx) const

О Обе формы возвращают символ с индексом idx (первому символу соответствует индекс 0).

О Для константных строк значение length() является действительным индексом; при обращении по нему оператор возвращает значение, сгенерированное конструктором по умолчанию для типа символов (\0 для типа string).

О Для неконстантных строк значение length() не является действительным индексом.

О Передача недействительного индекса приводит к непредсказуемым последствиям.

О Ссылки, возвращаемые для неконстантных строк, motjt стать недействительными из-за модификаций строки или перераспределения памяти (за подробностями обращайтесь к с. 471).

О Если вызывающая сторона не может проверить действительность индекса, следует использовать функцию at().



chare stringr.dt (s1ze type idx)

const chare string::at (size type idx) const

О Обе формы возвращают символ с индексом idx (первому символу соответствует индекс 0).

О Для всех строк значение length() не является действительным индексом.

О При использовании недействительного индекса (отрицательного, а также больщего либо равного size()) генерируется исключение out of range.

О Ссылки, возвращаемые для неконстантных строк, могут стать недействительными из-за модификаций строки или перераспределения памяти (за подробностями обращайтесь к с. 471).

О Если при вызове вы уверены в действительности индекса, можно воспользоваться оператором [], который работает быстрее.

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

const char* string: :c str О const

О Возвращает содержимое строки в виде С-строки (массив символов с присоединенным символом \0).

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

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

const char* string::6aia О const

О Возвращает содержимое строки в виде символьного массива.

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

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

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

slze type stry/?g: :сору (char* buf. size type buf size) const

size type string::copy (char* buf. size type buf size. size type idx) const

О Обе формы копируют не более buf size символов строки (начиная с индекса idx) в символьный массив buf.

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

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



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

О Если выполняется условие idx>\ze{), генерируется исключение out of range.

Модифицирующие операции Присваивание

string string;\орегд1ог= (const string str) string string:-.dss-ign (const string, str)

О Обе функции присваивают значение строки str. О Обе функции возвращают *this.

string string::assign (const string str. slze type strjdx,

s1ze type strjium)

О Присваивает не более str num символов строки str, начиная с индекса strjdx. О Возвращает *this.

О Если выполняется условие strjdx>str.s\ze{), генерируется исключение out of range.

string stry/?g; :operator= (const char* cstr) string string;:assign (const char* cstr)

О Обе функции присваивают символы, входящие в С-строку cstr,

О Присваиваются все символы cstr, кроме \0.

О Обе функции возвращают *this.

О Аргумент cstr не должен содержать NULL-указатель.

О Если размер полученной строки превышает максимально допустимое количество символов, обе функции генерируют исключение length error.

string, string: :assign (const char* chars. size type charsjen)

О Присваивает charsjen символов из символьного массива chars. О Возвращает *this.

О Символьный массив chars должен содержать не менее charsjen символов, которые могут иметь произвольные значения (символ \0 не имеет особой интерпретации).

О Если размер полученной строки превышает максимально допустимое количество символов, генерируется исключение length error.

string string::operator= [char с)

О Присваивает символ с как новое значение строки. О Возвращает *this.

О После вызова *this содержит только один символ.



1 ... 156 157 158 [ 159 ] 160 161 162 ... 239

© 2006 - 2025 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика