Главная » Просмотр файлов » Г. Шилдт - Полный справочник по C++

Г. Шилдт - Полный справочник по C++ (1109478), страница 141

Файл №1109478 Г. Шилдт - Полный справочник по C++ (Г. Шилдт - Полный справочник по C++) 141 страницаГ. Шилдт - Полный справочник по C++ (1109478) страница 1412019-04-28СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 141)

$1пс1ибе <сзгххпд> Яхпс1ибе <свхб11)» из?пя пащезрасе зоб? с)авв яттТуре ( с)тат *р; 1пг з?хе; ри)>?хс: Ягттуре(); ЯхтТуре(с?1ат *втх); яхтТуре(сопят яттТуре йо); // Конструктор копирования. -ЯстТуре() ( бе1еге [) р; ) 1т?епб овстеащ йорехасот« (свстеащ йвггоащ, яхттуре йо); ?т?епд хвхтеащ йоретасот» (1вгтеащ йвгтеащ, ясх уре йо); ЯхтТуре оретахот-(Ясттуре йо); // Вычитание подстроки. яггТуре оретагот-(с)тат *в); // Вычитание строки, // взятой в кавычки. // Операторы сравнения объектов класса ЯгтТуре.

хпх оретагот==(ЯСтТуре йо) ( тегитп !втгсщр(р, о.р); ) ?пг орехагот)=(ЯСтТуре йо) ( тегихп вхтсщр(р, о.р); ] хпс оретасот<(Ясхтуре йо) ( техитп зстсщр(р, с.р) < О; ) хпс срехагот>(ясттуре йо) ( теситп встсщр(р, с.р) > О? ) хпг оретасог<=(яхтТуре йо) ( тегитп вгтсщр(р, с.р) <= 0; ) хпг оретагог>=(Ягттуре йо) ( тегитп вгтсщр(р, о.р) >= О; ) // Операции сравнения объектов класса яггТуре // и строк, взятых в кавычки.

хпх оретасот--=(сЬат *в) ( тесихп ?встсщр(р, з); 1пг орехагст!=(с)тат *в) ( теситп вгтсп1р(р, з); ) 1пх оретасот<(с)тат *в) ( тегитп згтслат(р, в) « 0; ) 1пг орегасот>(сбег *з) ( тегитп встсщр(р, в) > 0; ] 1пх оретагот<=(с)тат *в) ( хегитп вбхстр(р, в) <-. О; хпг сретагох>=(с)тат *в) ( тегитп втгсщр(р, з) >= О; ) 1пг встз1хе() ( хесигп вст1еп(р); ) // Возвращает размер строк* . чохб щайезгх(с?тат *в) ( вгтсру(в, р); ) // Обычная строка, // заверщаьтщаяся нулевым байтом. орехасот с?тат *() ( гехихп р; ) // Преобразование в тип с)тат *. )' // Без явной инициализации. Ягттуре::Ягттуре() ( вххе = 1; // Оозлаем место лля нулевого символа.

сту ( Часть ?). Приложения на языке С++ ЯгтТуре оретахот=(ЯСхТуре йо); // // ЯстТуре оретагох=(с)тах в); // // ЯххТуре орегагот+(ЯстТуре йо); // // Ягттуре орехагот+(с?тах "з); // // бх?епб ЯсхТуре оретагот+(снах "в, строки, взятой в кавычки, и объекта ))ри< ваиваниь обьекта класса ЯгтТуре.

Орисваивание строки. взятой в кань.чки. Конкатенаиия обьектов класса Ятхтуре. Конкатенация строк, взятых в ваныч«и. ясгтуре йо); /* Конкатенация класса ЯгтТуре. р = пеи слат[втхе]г ) сатсЬ (Ьаг] а11ос ха) ( сост « "Ошибка при распределении памяти1п"г ехат(1); ) астору(р, ""); // Инициализация с помощью строки, взятой в кавыяки. Боттуре:гзоттуре(сЬат *вот! ( вате = ввт1еп(втт) + 1; // Оседаем место для нулевого символа. сту ( р = пои слат[вйте]; ) сассЬ (Ьаб а11ос ха) ( соцс « "й11осас1оп еттот1п"г ех1С(1); вотсру(р, вст)г // Инициализация с помощью объекта класса 5сттуре. Бсттуре::Всттуре(сопят дохтуре г*о) ( акте = о.в1тег Сту ( р к пем сЬат[в1те]г ) сассЬ (Ьаг] а11ос ха) ( сосо « "Ошибка при распределении памяти1п"г ех1с(1); ) астору(р, о.р)г ) // Вывод строки.

овстеаш йоретасот« (овттеаш йвттеаш, Всттуре йо] ( встеаш « о.р; тегцтп встеаш; ) // Ввод строки. Твттеаш йоретатот»(квттеаш йввтеаш„ ВттТуре йо) сЬат ь[255]г // Размер выбран произвольно // при желании его можно изменить. 1пт 1еп; вттеаш.сет11пе(т, 255) 1еп = вст1еп(с) ь 1г Н (1еп > о.в].те) ае1есе [] о.рг тту ( о.р = пеи слат[1еп]; ) сатсЬ (Ьаг) а11ос ха) соцс « "Ошибка при распределении памятиМ"г ехкс(1)г ) о. айте = 1егм Глава 39. Интеграция новых классов: пользовательский класс для работы со строками 743 ) всхсру(о.р, с); хеспхп вххеаю; ) // Присваивание объекту класса Ясхтуре // другого объекта этого типа.

яохтуре яххтуре::орегахох=(ЯСхтуре ао) ( ЯпхТуре оетр(о.р); 11(о.в1хе > вххе) ( де1еое [] р; // Освобождаем старую область памяти. сху ( р = пеи спаг[о.вххе); сахсЬ (Ьах) а11ос ха) ( соих сс "Ошибка при распрелелении памяти1п'; ехас(1); вххе = о.вххе; ) всхсру(р, о.р); всхсру(хепр.р, о.р); хесцхп сешр; // Присваивание строки, взятой в кавычки, // объекту класса Ясхтуре. ясхтуре яххтуре::орехаоох=(слег *в) ( 1пс 1еп = всх1еп(в) + 1; 11(в1хе < 1еп! о)е1еое [] Р; сху ( р = пеы слах[1еп); сассЬ (Ьаб.а11ос ха) ( соио « "Ошибка при распределении памяти)п"/ ехах(1): ) в1хе = 1еп; ) всхсру(р, в); хебвхп *спаяв; ) // )(онкатенапия двух объектов класса Ясхтуре.

ясхтуре яххтуре::орехасох+(ясхтуре ао) ( 1пх 1еп; Яххтуре Хешр; с)е1ехе [) хешр.р," 1еп = всх1еп(о.р! + вхх1еп(р) + 1; Сешр.вххе = 1еп; сху [ Хешр.р = пеи спах[1еп]; Часть )[. Приложения на яамке С++ ) сатсЬ (Ьаб а11ос ха) сост « "Ошибка при распределении памяти1п"; ехал(1)г ) астору (тешр. р, р); вттсас(тешр.р, о.р)г тетцтп тешр; ) // Конкатенация объекта класса ЯстТуре // и строки; взятой в кавычки. БттТуре БттТуре::оретатот+(слал *в) ( Бпт 1егп ЯстТуре тешр; г)е1еге () сешр Р' 1еп = вгт1еп(в) + вгт1еп(р) + 1; (;ешр.втте = 1епг тту ( тешр.р = пем сьат[1еп]; ) сатсЬ (Ьаб а11ос ха) сост « "Ошибка при распределении памяти1п"; ех1т(1); ) вттсру(гагар.р, р); вттсат(гешр.р, в); тегцтп тешрг // Конкатенация строки, взятой в кавычки, // с объктом класса БттТуре.

БттТуре оретатот+(слал *в, БттТуре ао) 1пс 1еп; Бтттуре гешрг с)е1ете (] сешр.рг 1еп = вст1еп(в) + вст1еп(о.р) + 1; Гешр.вузе = 1епг гту ( гешр.р = пею сЬат(1еп)г сатсЬ (Ьаг) а11ос ха) сост « "Ошибка при распределении памяти1п"г ехБС(1) г ) вттсру(сешр.р, в!; вттсат(сешр.р, о.р) тетцтп тешр( Глава 39. Интеграции иовмк классов: лольэовательский класс длв работы со строками 74р // Вычитание подстроки из объекта класса БгхТуре. Бггтуре Бггтуре::орегасог-(Бтттуре аяиЬягт) Бгттуре Селрр(р); сЬат "я1; 1пс я1 Ест(1=0; *я1; 1++) ( 1Е(*я1(=*яОЬвгт.р) // Если символ не ввлветсв // первой буквой подстроки, // копируем его в объект секр. гетр.р[1) = "я1; в1++; ) е1яе йог(3=0; яиЬягт.р[3 11('.яиЬЯСг.р[3]) ]==я1[3) аа яоЬягх-р[3] ' 3++) // Если подстрока обнаружена, // удаляем ее.

продолжаем копирование. // Вычитание строки, взятой в кавычки, из // объекта класса Бсхтуре. Бггтуре БггТуре::оретагог-(слаг *яиЬясг) ( Бггтуре Сеир(р); спаг "я1; Епг 1, 3," я1 = р; Еог(1=0; *я1; 1+ъ) 1Е(~я1!а*яиЬягг) ( // // гепр.р[1) = *я1; // я1++: ) е1яе ( Ест(3=0; воЬягт[3]= 1г(!яоЬягг[3)) ( // // Если символ не является первой буквой подстроки, копируем его в объект Оетр. =Я1 [3] аа ЯиЬЯГх[3]; 3+~ ) Если подстрока обнаружена, удаляем ее. продолжаем копирование.

в1 1 †; ) е1яе ( // Если нет. Севр.р[1] = *я1: я1++; ) ) ) севр.р[1) = '10'; теготп Гевр; ) я1 += 1--; ) е1яе ( // Если нет, сепр.р[1) = "я1; я1++; ) ) Часть )(. Првложеяиз на языке С++ Херр.р[х) = '10'; хехпхп секр; ) хпх тахо() ЯС Туре в1("Работа со строковыми объектами.1п") В ох Туре в2 ( Б1 ); Яахтуре БЗ; снах в[80)г сопх « Б1 «» Б2; БЗ = БТг соих « Б1; БЗ.гаа)<евах(я)г сопх «« "Вреобразсвание В строку: " <« Б; Б2 = "Вто — новая строка.' сопх «< Б2 « епй1; Вьстуре Б4(" И зта тоже.") Б1 = Б2+Б4; сопх « Б1 «« епб1; х Т ( Б2.= =я 3 ) хГ(Б2!=БЗ) хГ(Б1<Б4) хх б (Б1>н4) 3 Р (Б1<=-Б4) хх(Б1>=Б4) гхб(Б2 > "АВС" ) сопх « "Строка Б2 больае строки АВСхтгхп "опе сюо с)х ее опе съо спхеетп" г 'сыо"; « 'Исколнал строка: ' « Б1; « 'Строка после вывитанин полстроки тио: в1 — Б2г « БЗ; епа1г ЕМ ПРНВЕ строки С+» весьма забавны1п"г БЗ: "ВСЕМ П(-ИВГ Х'! "; правда ли, " + БЗ; БЗ.

сопс « Б4 = "Вс БЗ = Б4 сопс « БЗ = БЗ БЗ = 'Не соос « Б1 = БЗ вЂ” "весьма сопх « Б1; БЗ = Б1; попс « "Ввелите строку: схп » Б1; Глава а9. Интеграция новых классов: пользовательский класс для работы сс строками 747 Б1 Б2 попс сопс зЗ сопх сепо « "Строки попс « "Строки сонь « "Строка сопв « "Строка соих « 'Строка сопя « ":трока равньг. тп"; не раяньп Хп" г Б1 меньзе строки Б41п"г з1 бельме строки Бато"г в) меньае или равна строке Б41п"г Б1 бользе или равна строке Б41п"г сопя «я1 «епд1; сосо « "Строка я1 состоит ня ' « я1,ягея1яе() « " символов. 1п"; рпея(я1); // Преобразование в тип сваг я1 = я2 = яЗ: попе « я1 « я2 « я31 я1 = я2 = яЗ = "Пока соне я< в1 « я2 « яЗ: геспгп 0: ) Программа выводит на экран следующие строки.

Работа со строковыми объектами. Работа со строковыми объектами. Работа со строковыми объектамн. Преобразование в строку: Работа со строковыми объектами. Это в новая строка. Это — новая строка. И эта тоже. Строки не равны. Строка я1 больше строки я4 Строка в1 больше или равна строке я4 Строка я2 белья~а строки АВС Исходная строка: опе Сио Снгее опе Еио Епгее Строка после вычитания подстроки Еыо: опе ЕЬгее опе епгее Всем привет, строки С++ весьма забавны Не правда ли, строки С++ весьма забавны Не правда ли, строки С++ забавны Введите строку: 1 1г йе С++ Строка я1 состоит из 10 символов 1 11Ке с++ Не правда ли, строки С++ забавны Не правда лн, строки С++ забавны Не правда ли, строки С++ забавны Пока Пока Пока Применение класса 8$гТуре В завершение главы рассмотрим два примера, иллюстрирующих применение класса вектуре.

Как мы увидим, благодаря операторам, определенным в зтом классе, и возможности преобразования его объектов в тип сйак * класс вектуре полностью совместим со средой программирования на языке С++. Иначе говоря, он ничем не отличается от любого другого типа, предусмотренного в языке С++. В первом примере создается простой словарь, состоящий из объектов класса вехтуре. Сначала он создает двухмерный массив„состоящий из объектов класса веятуре. Первым элементом каждой пары строк является ключевое слово, а вторая строка содержит список синонимов и родственных слов.

Характеристики

Тип файла
DJVU-файл
Размер
7,03 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6553
Авторов
на СтудИзбе
299
Средний доход
с одного платного файла
Обучение Подробнее