Функция сравнения строк без учета регистра символов
Функция сравнения строк
Функция объединения строк с указанием с количество символов строки, источника.
Функция объединения строк
Функция определения длины строки
Функция копирования n-символов из строки в строку
Функция копирования строки в строку
Функция getline.
Работа со строками
Функции
…
При работе со строками оператор ввода (cin) игнорирует пробеле
Char a[20];
Число 2 байта
Буква 1 байт
Вместо функции ввода можно использовать функцию getline.
Формат функции:
Getline(char *buffer, int size, char symvol)
Первый аргумент – указатель на строку, в которую помещаются символы
Второй аргумент - …определяет максимальное количество вводимых символов.
Третий аргумент – символ ограничитель, при появлении которого ввод прекращается. Символ ограничитель при котором ввод прекращается \n.
Char name[80];
Cout<<”Enter your name\n”
Сштюпуедшту(name,sizeof(name));
Cout>>”Helo ”>>name;
Strcpy(char *str1[],char *str2[])
Char str2[10]; char str2[10];
Strcpy(str1,”Иванов”)
Strcpy(str2,”Петров”)
Strlen(char *str[])
Char str[]=”0123456789”;
Strlen(str); //10
Strcat(char *str1[], char *str2[])
Char str1[]=”Hello I am ”;
Char str1[]=”Keith Thompson”;
Strcat(str1,str2); //hello I am Keith Thompson
…
Ctrcmp(char *str1[], char str2[])
Char str1[]=”Password”
Cout<<”Введите паороль”;
Cin>>str2;
If (strcmp(str1,str2)==0)
Cout<<”Пароль введен верно”;
Stricmp
Формат аналогичен
Stricmp(char *str1[],char *str2[],n)
Char str1[]=”Borland C++”;
Char str2[]=”Borland Pascal”;
Stricmp(str1,str2,8) //сравнивает 8 символов из каждой строки
Strchr
Функция определяет первое вхождение символа в строку, указателю присваивается адрес этого вхождения.
Strchr(char *str[], char symvol)
str[]=”Borland C++”
char *p;
Charchr(str,’+’);
//когда работаем с одним символом можно ставить одинарные кавычки
Функция
Первое свойство ООП – инкапсуляция.
В ООП на основе существующих классов можно строить производные класса.
Производный класс наследует все свойства родительского.
Таким образом второе свойство ООП – наследование.
Способность объектов различных классов отвечать на запрос функции сообразно типу своего класса называется полиморфизмом.
Class classname
{
private:
<закрытые элементы данные>;
<закрытые функции элементы>;
<закрытые конструкторы>;
Protected:
<защищенные элементы данные>;
<защищенные функции элементы>;
<защищенные конструкторы>;
Public:
<открытые элементы данные>;
<открытые функции элементы>;
<открытые конструкторы>;
}
Классы имеют три уровня доступа к своим элементам private, protected, public.
К данным в защищенном разделе имеют доступ функции этого класса, функции производного от этого класса.
К данным в открытом разделе имеют доступ все.
1) Перечисляться могут в любой последовательности
2) Может отсутствовать любой из разделов, но хотя бы один раздел должен быть
Class point {
Public:
Int x,y;
Int getx() {return x;}
Int gety() {return y;}
Ввод – вывод данных
Выводом называется процедура переноса данных из памяти компьютера на внешние устройства. При вводе данных, напротив, информация извне вносится в память компьютера.
Данные можно ввести с клавиатуры или из файла на диске, вывести их на экран, отпечатать на принтере, кроме того, данные можно хранить на внешнем носителе или отправить их по линии связи во вне. При выводе данные не удаляются из памяти компьютера, не изменяется способ их хранения, компьютер просто копирует данные и посылает их в память компьютера, а информация на внешнем устройстве не претерпевает никаких изменений.
В С и С++ ввод и вывод данных осуществляется с помощью библиотечных функций, которые работают как с консолью, так и с файлами.
Консоль – это устройство для управления компьютерной системой, это может быть клавиатура, экран дисплея, принтер или любое другое устройство, связывающее пользователя с компьютером.
Файл – это набор данных, хранящийся вне памяти компьютера. В настоящее время существует множество устройств для хранения информации, в принципе можно сказать, что файловым может быть любое устройство, на которое можно записывать, а в последствии и считывать данные. Но наиболее часто программист работает с файлами на жестком диске компьютера. В отличие от переменной файл, в частности, его имя, имеет смысл вне конкретной программы. Работа с файлами реализуется средствами операционных систем.
Различают буферизованный и небуферизованный (прямой) ввод / вывод данных. Небуферизованный ввод / вывод характерен тем, что символ немедленно доступен ожидающей программе.
При буферизованном вводе / выводе символы сначала помещаются в специальную область памяти, называемую буфером. Здесь они накапливаются до тех пор, пока не будет нажата клавиша ENTER или пока буфер полностью не заполнится. Только после этого накопленный блок данных становится доступным программе. Большинство библиотечных функций С и С++ работают с буферизацией.
Зачем нужны буферы? Одни устройства производят запись данных в буфер, а другие – чтение из него. Программа, выполнившая запись в буфер, может немедленно продолжать работу, не ожидая, пока данные будут обработаны внешним устройством. Это очень важно для эффективной работы компьютера, т.к. внешние устройства работают значительно медленнее памяти компьютера. Таким образом, буферизация позволяет выполнять параллельно вывод и обработку данных.
Если необходимо передать данные между устройствами, работающими с различными скоростями, также необходим буфер. Каждое устройство работает с буфером со своей скоростью, в то время как в буфере по необходимости накапливаются данные. Такой метод работы называется синхронизацией передачи информации.
Термин буферизация чаще используется применительно к компьютерной технике, в программировании чаще используется термин поток данных.
В общем случае поток – это механизм преобразования значений различного типа в последовательность символов (вывод) и наоборот (ввод). Но можно рассматривать поток как синоним буфера данных. Потоки могут быть буферизованные и небуферизованные, форматированные и неформатированные.
Буфер, который поставляет данные компьютеру, называется входным потоком, буфер, который выводит данные из компьютера, называется выходным потоком. При работе программы потоки связываются с тем или иным физическим устройством, программист же, используя библиотечные функции, всегда работает с потоком.
Отметим одно интересное свойство функций ввода языка С, С++. Когда данные вводятся с клавиатуры, они отображаются на экране монитора, при этом в программе не используются никакие функции вывода на экран. Это явление называется эхопечать.
Мы рассмотрим наиболее простые и популярные функции ввода/вывода, полный же перечень библиотечных функций можно найти в справочниках по библиотечным функциям языка С или С++.
1. Функции ввода / вывода
Ввод / вывод в С и С++ реализуется или с помощью функций библиотеки С, или с помощью потоков С++.
Функции ввода / вывода размещены в нескольких библиотеках, наиболее популярные из которых stdio, conio, iostream.
Библиотека – это отдельный файл, прилагающийся к компилятору языка, содержащий функции для решения распространенных задач.
Вообще, смешивать два способа ввода / вывода (при помощи потоков и при помощи библиотеки С) в одной программе можно только синхронизовав ввод с помощью функции sync_with_stdio(). Каждый способ имеет свои преимущества. Преимущество использования потоков в том, что они легче в использовании в простых случаях ввода / вывода, не требующих форматирования, а главное, потоковые операции можно переопределить для собственных классов. Ввод / вывод в стиле С удобнее использовать при форматированном выводе в программах, не использующих объектно-ориентированную технику. Кроме того, существуют миллионы строк, написанных на С и перенесенных в С++, с которыми программисту приходится сталкиваться.
Для использования функций ввода / вывода в стиле С необходимо подключить к программе заголовочный файл <stdio.h> или <cstdio>. При вводе / выводе данные рассматриваются как поток байтов. Физически поток представляет собой файл или устройство (например, клавиатуру или дисплей, рассматривающиеся как частные случаи файла).
2. Ввод / вывод данных на консоль. Библиотека stdio.