|
Программирование >> Элементы языков с и с++
Результат: si = привет! !! (добавлен указанный символ в новые позиции). □ rfindo - в строке ищет заданную подстроку в обратном направлении (от конца к началу) и выдает номер позиции первой входимости. Пример 1: string з1= Приветствуем ; int i=sl.rfind( p ); Результат: i = i. Пример 2: string з1= Приветствуем ; int i=sl.rfind( p,10 ); Результат: i = -i. Поиск происходил с 11-й позиции, начиная с конца строки, и поэтому символ р не был найден. □ size () - возвращает число элементов, находящееся в данный момент в строке. Пример: string 81= Привет ; int i=sl.size(); Результат: i = 6. □ substr о - выделяет заданное количество символов, начиная с заданной позиции. Пример: string 81= Привет ; sl=sl.substr(3,10); J Результат: si = вет . Из si с позиции 4 выделено 10 символов (выделились только существующие). □ swap () - меняет местами содержимое двух строк. Пример: string з1= Привет ; string з2= Всем ; si.swap(s2); Результат: si = Всем , s2 = Привет . Операторы > . □ += - добавляет символы к строке (обычное сцепление). . Пример: string з1= Привет ; string з2= Всем ; sl+=s2; Результат: si = привет Всем . □ = - присваивает строке, находящейся слева, значение строки, находящейся справа. Пример: string з1= Привет ; string з2= Всем ; s2=3l; Результат: 32 = привет . □ [ ] - выдает ссьшку на символ строки, заданный его индексом. Пример: int fu(basic 3tring <char>::reference r) обработка ссылки ( r=5; , return(0); ) string з1= Привет ; I ba3ic 3tring <char>::reference rl = з1[5]> fu(rl); Пояснение: Функция fu() получает в качестве аргумента ссылку на элемент строки. Внутри своего тела она изменяет значение элемента строки, адрес которого передан функции. Поэтому после обращения к функции (последняя строка) значение з1 = привеЗ (т. е. символ т был заменен функцией на символ 5). Тип String Это класс из пространства System, предназначенный для проведения различных действий со строковыми данными. Используется при объявлении строки с указателем (например, string s;). Знак объявляет указатель на объект в участке памяти, который выделяется под экземпляры объектов и автоматически освобождается, когда этот объект перестает использоваться. Указывается на целый объект, а не на какой-либо его член. Объект создается с помощью утилиты gcnew и конструктора объекта. Почему возникла необходимость использовать указатель вместо обычного указателя * или ссылочного указателя &? Указатель выдает ссылку на объект в выделенной памяти всегда, даже когда объект переместился в этом участке. Указатели обычного типа в подобных случаях этого делать не могут. В остальном применение указателя к элементу объекта такое же, как и других указателей: надо писать оператор -> после имени объекта, чтобы получить доступ к его члену (например, s->Copy() дает доступ к члену объекта типа string- методу копирования данных Сору ()). Тип string применяется следующим образом. Объявляется переменная этого типа, например, string s;. Этой переменной можно присваивать значения такого же типа, что были уже где-то созданы и, следовательно, расположены в выделенной для них памяти. Когда мы пишем s = а; (где а - это переменная типа string, имеющая некоторое значение), то указатель указывает на объект а в выделенной для него памяти. Если по каким-то причинам объект а переместился в памяти на другое место, то указатель изменит свое значение на новое, которое станет все равно указывать на объект с именем а. Однако переменной s типа string можно присваивать значение и с помощью конструктора, использующего утилиту gcnew, которая выделяет память под объект, на который воздействует конструктор, когда присваиваемое значение имеет тип, отличный от типа string. Конструктор для string имеет несколько форм: □ string(const wchar t *value); Например: string s=gcnew String (Ll-я форма конструктора ); Результат: 1-я форма конструктора
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |