Главная » Просмотр файлов » Конспект лекций по С++

Конспект лекций по С++ (1018900), страница 14

Файл №1018900 Конспект лекций по С++ (Сборник литературы - С и С++) 14 страницаКонспект лекций по С++ (1018900) страница 142017-07-08СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

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

char string2[] = "BORLAND C++";

i = strcmp(string1, string2);

В последнем операторе переменной i присваивается положительное значение, так как string1 больше string2 (ASCII-коды символов в ниж­нем регистре больше ASCII-кодов символов в верхнем.)

Функция stricmp

Функция stricmp выполняет сравнение двух строк, не учитывая регистра символов.

Прототип функции stricmp:

int stricmp(const char *strl, const char *str2);

Функция сравнивает строки strl и str2, не делая различия между символами в нижнем и верхнем регистре. Возвращает в качестве ре­зультата сравнения целую величину:

< 0 когда strl меньше, чем str24

= 0 когда strl равна str24

> 0 когда strl больше, чем str2.

Пример

char string1[] = "Borland C++";

char string2[] = "BORLAND C++";

int i = strcmp(string1, string2);

В последнем операторе переменной i присваивается значение 0, так как string1 и string2 отличаются друг от друга только регистром сим­волов.

Функция strncmp выполняет сравнение заданного количества символов двух строк с учетом регистра символов.

Функция strncmp

Прототип функции strncmp:

int strncmp(const char *strl, const char *str2, size_t num);

Функция сравнивает первые num символов строк strl и str2. Воз­вращает в качестве результата сравнения целую величину:

< 0 когда strl меньше, чем str2;

= 0 когда strl равна str2;

> 0 когда strl больше, чем str2.

Пример

char string1[] = "Borland C++";

char string2[] = "Borland Pascal";

i = stricmp(string1, string2, 9);

В последнем операторе переменной i присваивается отрицательное значение, так как значение "Borland С" меньше, чем "Borland Р".

Функция strnicmp

Функция strnicmp выполняет сравнение заданного количества символов двух строк без учета регистра символов.

Прототип функции strnicmp :

int strnicmp(const char *strl, const char *str2, size_t num);

Функция сравнивает первые num символов строк strl и str2, не делая различия в регистре символов. Возвращает в качестве результата сравнения целую величину:

< 0 когда strl меньше, чем str2;

= 0 когда strl равна str2;

> 0 когда strl больше, чем str2.

Пример

char string1[] = "Borland C++";

char string2[] = "BORLAND Pascal";

i = strnicmp(string1, string2, 7);

В последнем операторе переменной i присваивается значение 0, так как подстрока "Borland" отличается в этих строках только регистром.

Рассмотрим пример программы, в которой применяются функции срав­нения строк. Программа из листинга 5 объявляет массив строк и присваивает им значения. Затем программа выводит исходный массив, сортирует его и выводит значения строк отсортированного массива. |

(см. List7_5.cpp - Исходный текст программы STRING2.CPP)

Преобразование строк

Функция strlwr

Прототип функции strlwr:

char* strlwr (char *source)

Функция преобразует символы верхнего регистра в символы ниж­него регистра в строке source. Другие символы не затрагиваются. Функ­ция возвращает указатель на строку source.

Пример

char str[] = "HELLO THERE";

strlwr(str);

Переменная str теперь содержит строку "hello there".

Функция strupr

Прототип функции strupr:

char* strupr(char *source)

Функция преобразует символы нижнего регистра в символы верх­него регистра в строке source. Другие символы не затрагиваются. Функ­ция возвращает указатель на строку source.

Пример

char str[] = "Borland C++";

strupr(str);

Переменная str теперь содержит строку "BORLAND С ++".

Обращение строк

Библиотека STRING.H предлагает функцию strrev для записи символов в строке в обратном порядке.

Функция strrev

Прототип функции strrev:

char* strrev(char *str)

Функция обращает порядок символов в строке str и возвращает указатель на строку str. char str[] = "Hello";

strrev(str) ;

cout « str;

Будет выведено "olleH".

Рассмотрим программу, которая манипулирует символами в строке. List7_6.cpp показывает исходный текст программы STRING3.CPP. Программа выполняет следующие задачи:

  • Запрашивает у вас ввод строки

  • Отображает ваш ввод

  • Выводит вашу строку в нижнем регистре

  • Выводит вашу строку в верхнем регистре

  • Отображает символы, которые вы ввели, в обратном порядке

  • Выводит сообщение, что ваш ввод не содержит символов верхнего реги­стра, если это так

  • Выводит сообщение, что ваш ввод не содержит символов в нижнем ре­гистре, если это так

  • Выводит сообщение, что ваша строка симметрична, если это так

Поиск символов

Библиотека STRING.H предлагает ряд функций для поиска символов в строках. Это функции strchr, strrchr, strspn, strcspn и strpbrk. Они осущест­вляют поиск в строках символов и простых символьных шаблонов.

Функция strchr

Функция strchr определяет первое вхождение символа в строку.

Прототип функции strchr:

char* strchr(const char *target, int c)

Функция находит первое вхождение символа с в строку target. Функ­ция возвращает указатель на символ в строке target, который соответст­вует заданному образцу с. Если символ с в строке не обнаруживается, функция возвращает 0.

Пример

char str[81] = "Borland C++";

char *strPtr;

strPtr = strchr(str, '+');

Указатель strPtr теперь содержит адрес подстроки "++" в строке str.

Функция strrchr

Функция strrchr определяет последнее вхождение символа в строке.

Прототип функции strrchr:

char* strrchr(const char *target, int c)

Функция находит последнее вхождение символа с в строку target. Функция возвращает указатель на символ в строке target, который соответствует заданному образцу с. Если символ с в строке не обнару­живается, функция возвращает 0.

Пример

char str[81] = "Borland C++ is here";

char* strPtr;

strPtr = strrchr(str, '+');

Указатель strPtr теперь указывает на подстроку "+ is here " в строке str.

Функция Strspn

Функция strspn возвращает число символов с начала строки, совпадаю­щих с любым символом из шаблона.

Прототип для функции strspn:

size_t strspn(const char *target, const char *pattern)

Функция strspn возвращает число символов от начала строки target, совпадающих с любым символом из шаблона pattern.

Пример

char str[] = "Borland C++ 5";

char substr[] = "narlBod";

int index;

index = strspn(str, substr);

Этот оператор присваивает 8 переменной index, потому что первые восемь символов из str содержатся в подстроке substr.

Функция strcspn

Функция strcspn просматривает строку и выдает число первых символов в строке, которые не содержатся в шаблоне.

Прототип функции strcspn:

size_t strcspn(const char* str1, const char* str2)

Функция strcspn просматривает строку str1 и выдает длину под­строки, отсчитываемой с начала строки, символы которой полностью отсутствуют в строке str2.

Пример

char strng[] = "The rain in Spain";

int i = strcspn(strng, " in");

Этот пример возвращает 3 (расположение первого пробела в строке strng) переменной i.

Функция strpbrk

Функция strpbrk просматривает строку и определяет первое вхождение любого символа из образца.

Прототип функции strpbrk:

char* strpbrk(const char* target, const char* pattern)

Функция strpbrk ищет в строке target первое вхождение любого сим­вола из образца pattern. Если символы из образца не содержатся в строке, функция возвращает 0.

Пример

char *str = "Hello there how are you";

char *substr = "hr";

char *ptr;

ptr = strpbrk(str, substr);

cout « ptr « endl;

Вы увидите на экране строку "here how are you", потому что 'h' встречается в строке str раньше, чем 'r'.

Поиск строк

Библиотека функций STRING.H предлагает для поиска подстроки в строке функцию strstr.

Функция strstr

Прототип функции strstr:

char* strstr(const char *str, const char *substr);

Функция ищет в строке str первое вхождение подстроки substr. Функ­ция возвращает указатель на первый символ найденной в строке str под­строки substr. Если строка substr не обнаружена в строке str, функция возвращает 0.

Пример

char str[] = "Hello there! how are you";

char substr[] = "how";

char *ptr;

ptr = strstr (str, substr);

cout « ptr « endl ;

Это приведет к выводу строки "how are you", поскольку в строке str , была обнаружена подстрока "how". Указатель ptr содержит адрес остатка первоначальной строки, начинающегося с подстроки "how".

Функция strtok

Библиотека функций для работы со строками имеет функцию strtok, которая дает вам возможность разбить строку на подстроки на основании заданного набора символов-ограничителей.

Подстроки иногда называются лексемами.

Прототип функции strtok:

char* strtok(char *target, const char * delimiters);

Функция разбивает строку на лексемы, согласно символам-ограни­чителям, заданным в параметре delimeters. В следующем примере по­казано, как работать с этой функцией и как получать лексемы, на которые была разбита строка. Функция strtok вводит символ '\0' после каждой лексемы. (Опять же не забудьте сохранить копию вашей строки в другой строковой переменной.)

Пример

#include <stdio.h> // см. файл Ex02.cpp

#include <string.h>

int main()

{

char *str = "(Base_Cost + Profit) * Margin";

char *tkn = "+*()";

char *ptr = str;

printf("%s\n", str);

// Первый вызов функции

ptr = strtok(str, tkn);

printf("Лексемы этой строки: %s", ptr);

while (ptr)

{

// Первый аргумент должен быть равен нулю

if ((ptr = strtok(0, tkn)) != 0)

printf (",%s", ptr);

}

printf("\n");

return 0;

}

В результате выполнения этой программы на экран выводятся сле­дующие строки:

(Base_Cost + Profit) * Margin

Лексемы этой строки: Base_Cost, Profit, Margin

Рассмотрим пример программы поиска символов и строк. Листинг 7 (List7_7.cpp) содержит исходный текст программы STRING4.CPP. Программа выполняет следующие задачи:

  • Запрашивает у вас ввод основной строки

  • Запрашивает строку поиска

  • Предлагает вам ввести символ поиска

  • Выводит линейку цифр и основную строку

  • Выводит номер символа в основной строке, с которого начинается строка поиска *

  • Выводит номер символа в основной строке, совпавшего с символом по­иска.

Основы объектно-ориентированного программирования СИНТАКСИС ОСНОВНЫХ КОНСТРУКЦИЙ

Объявление базовых классов

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

Базовый класс

Базовый класс определяется следующим образом (синтаксис):

class className

{

private:

<закрытые элементы-данные>

<закрытые конструкторы>

<закрытые функции-элементы>

protected:

<защищенные элементы-данные>

<защищенные конструкторы>

<защищенные функции-элементы>

public:

<открытые элементы-данные>

<открытые конструкторы>

<открытый деструктор>

<открытые функции-элементы>

};

Пример 1:

class point

{

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

Тип файла
Документ
Размер
656 Kb
Тип материала
Высшее учебное заведение

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

С и С++ - сборник литературы
C++ Бархатный путь - Марченко А
cpp_001.shtml
cpp_002.shtml
cpp_003.shtml
cpp_004.shtml
cpp_005.shtml
cpp_006.shtml
cpp_007.shtml
cpp_008.shtml
cpp_009.shtml
cpp_010.shtml
cpp_011.shtml
cpp_012.shtml
cpp_013.shtml
cpp_014.shtml
cpp_015.shtml
cpp_016.shtml
cpp_017.shtml
cpp_018.shtml
cpp_019.shtml
cpp_020.shtml
cpp_021.shtml
cpp_022.shtml
cpp_023.shtml
cpp_024.shtml
cpp_025.shtml
cpp_026.shtml
cpp_027.shtml
cpp_030.shtml
cpp_034.shtml
Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
7023
Авторов
на СтудИзбе
260
Средний доход
с одного платного файла
Обучение Подробнее