Презентация, доклад на тему Уроки программирования C++. Урок 5. Массивы и строки

Содержание

МассивыНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаМассив (array) — это коллекция однотипных данных, обращение к которым происходит с применением общего для всех имени.В C++ массивы могут быть одно- или многомерными, хотя в основном используются одномерные массивы.Массивы

Слайд 1Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++
Массивы

и строки
Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ С++Массивы и строки

Слайд 2Массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Массив (array) — это коллекция

однотипных данных, обращение к которым происходит с применением общего для всех имени.
В C++ массивы могут быть одно- или многомерными, хотя в основном используются одномерные массивы.
Массивы представляют собой удобное средство группирования связанных элементов.
МассивыНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаМассив (array) — это коллекция однотипных данных, обращение к которым происходит

Слайд 3Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Одномерный массив —

это список связанных элементов. Для объявления одномерного массива используется следующая форма записи.

тип имя_массива[размер];
Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаОдномерный массив — это список связанных элементов. Для объявления

Слайд 4Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Например, при выполнении

приведенной ниже инструкции объявляется int-массив (состоящий из 10 элементов) с именем sample.

int sample[10];

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаНапример, при выполнении приведенной ниже инструкции объявляется int-массив (состоящий

Слайд 5Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Доступ к отдельному

элементу массива осуществляется с помощью индекса.

Индекс описывает позицию элемента внутри массива.

В C++ первый элемент массива имеет нулевой индекс.
Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаДоступ к отдельному элементу массива осуществляется с помощью индекса.Индекс

Слайд 6Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Чтобы получить доступ

к элементу массива по индексу, достаточно указать нужный номер элемента в квадратных скобках.

Первым элементом массива sample является sample[0], а последним — sample[9].
Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаЧтобы получить доступ к элементу массива по индексу, достаточно

Слайд 7Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include


int main()
{
int sample[10];
int t;
for (t = 0; t<10; ++t)
sample[t] = t;
for (t = 0; t<10; ++t)
cout << sample[t] << ' ';
return 0;
}

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  int main()  {

Слайд 8Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова

В C++ все

массивы занимают смежные ячейки памяти.

Ячейка с наименьшим адресом относится к первому элементу массива, а с наибольшим — к последнему.

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ C++ все массивы занимают смежные ячейки памяти. Ячейка

Слайд 9Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
после выполнения фрагмента

кода

int i[7];
int j;
for (j = 0; j<7; j++) i[j] = j*j;

получим

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинниковапосле выполнения фрагмента кода	int i[7];	int j;	for (j = 0;

Слайд 10Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Для одномерных массивов

общий размер массива в байтах вычисляется так:

всего байтов = (размер типа в байтах) х (количество элементов)

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаДля одномерных массивов общий размер массива в байтах вычисляется

Слайд 11Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В следующей программе

создается массив из десяти элементов, каждому элементу присваивается случайное число, а затем на экране отображаются минимальное и максимальное значения.
Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ следующей программе создается массив из десяти элементов, каждому

Слайд 12Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include

#include
using namespace std;

int main()
{
int i, min_value, max_value;
int list[10];
for (i = 0; i<10; i++) list[i] = rand();
min_value = list[0];
for (i = 1; i<10; i++)
if (min_value > list[i]) min_value = list[i];
cout << "Минимальное значение: " << min_value << ' \n';

max_value = list[0];
for (i = 1; i<10; i++)
if (max_value < list[i]) max_value = list[i];
cout << "Максимальное значение: " << max_value << '\n';

return 0;
}

Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  #include   using namespace std;

Слайд 13Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В C++ нельзя

присвоить один массив другому. В следующем фрагменте кода, например, присваивание а = b; недопустимо.

int а[10], b[10];
// ...
а = b; // Ошибка!!!

Чтобы поместить содержимое одного массива в другой, необходимо отдельно выполнить присваивание каждого значения.

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ C++ нельзя присвоить один массив другому. В следующем

Слайд 14Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова

На границах массивов

погранзаставы нет

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаНа границах массивов погранзаставы нет

Слайд 15Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В C++ не

выполняется никакой проверки "нарушения границ" массивов
Если это происходит при выполнении инструкции присваивания, могут быть изменены значения в ячейках памяти, выделенных некоторым другим переменным или даже вашей программе.
Это означает, что вся ответственность за соблюдение границ массивов лежит только на программистах, которые должны гарантировать корректную работу с массивами.
Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ C++ не выполняется никакой проверки

Слайд 16Одномерные массивы.
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include

using namespace std;
int main()
{
int crash[17], i;
for (i = 0; i < 17; i++)
{
crash[i] = i;
cout << crash[i] << " ";
}
system("pause");
return 1;
}

Скомпилируется ли следующая программа?

Есть ли ошибки в программе?

Одномерные массивы.Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  using namespace std;  int main()

Слайд 17Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include


using namespace std;
int main()
{
int crash[17], i;
for (i = 0; i < 18; i++)
{
crash[i] = i;
cout << crash[i] << " ";
}
system("pause");
return 1;
}

А эта программа скомпилируется?

Есть ли ошибки в программе?

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  using namespace std;  int

Слайд 18Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Например, С++-компилятор "молча"

скомпилирует и позволит запустить программу на выполнение, несмотря на то, что в ней происходит выход за границы массива crash.

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаНапример, С++-компилятор

Слайд 19Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include


using namespace std;
int main()
{
int crash[17], i;
for (i = 0; i < 17; i++)
{
crash[i] = i;
}
for (i = 0; i < 25; i++)
{
cout << "crash["< }
system("pause");
return 1;
}

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  using namespace std;  int

Слайд 20Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова

Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова

Слайд 21Двумерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Двумерный массив, по сути,

представляет собой список одномерных массивов.
Чтобы объявить двумерный массив целочисленных значений размером 10x20 с именем twod, достаточно записать следующее: 

int twod[10][20];

Двумерные массивыНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаДвумерный массив, по сути, представляет собой список одномерных массивов.Чтобы объявить

Слайд 22Двумерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В двумерном массиве позиция

любого элемента определяется двумя индексами.
Если представить двумерный массив в виде таблицы данных, то один индекс означает строку, а второй — столбец.
Двумерные массивыНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ двумерном массиве позиция любого элемента определяется двумя индексами.Если представить

Слайд 23Двумерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Чтобы получить доступ к

элементу массива twod с координатами 3,5 , необходимо использовать запись

twod[3][5]
Двумерные массивыНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаЧтобы получить доступ к элементу массива twod с координатами 3,5

Слайд 24Двумерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include


using namespace std;

int main()
{
int t, i, num[3][4];
for (t = 0; t<3; ++t) {
for (i = 0; i<4; ++i) {
num[t][i] = (t * 4) + i + l;
cout << num[t][i] << ' ';
}
cout << '\n';
}
return 0;
}
Двумерные массивыНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include   using namespace std;  int

Слайд 25Многомерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В C++, помимо

двумерных, можно определять массивы трех и более измерений.
Вот как объявляется
тип имя[размер1] [размер2]... [размерN]; 

Например, с помощью следующего объявления создается трехмерный целочисленный массив размером 4x10x3.
int multidim[4][10][3];

Многомерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ C++, помимо двумерных, можно определять массивы трех и

Слайд 26Инициализация массивов
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В C++ предусмотрена

возможность инициализации массивов. Формат инициализации массивов подобен формату инициализации других переменных.

тип имя_массива [размер] = {список_значений};

Инициализация массивов Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ C++ предусмотрена возможность инициализации массивов. Формат инициализации массивов

Слайд 27Инициализация массивов
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Примеры

int i[10] =

{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

char str[7] = "привет";

char str[7] = { 'п', 'р', 'и', 'в', 'е', 'т', '\0' };
Инициализация массивов Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаПримерыint i[10] = { 1, 2, 3, 4, 5,

Слайд 28"Безразмерная" инициализация массивов
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Предположим, что

мы используем следующий вариант инициализации массивов для построения таблицы сообщений об ошибках.

char e1[14] = "Деление на 0\n";
char е2[23] = "Конец файла\n";
char еЗ[21] = "В доступе отказано\п";


Слайд 29"Безразмерная" инициализация массивов
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
в C++

предусмотрена возможность автоматического определения длины массивов путем использования их "безразмерного" формата.
Если в инструкции инициализации массива не указан его размер, C++ автоматически создаст массив, размер которого будет достаточным для хранения всех значений инициализаторов.

Слайд 30"Безразмерная" инициализация массивов
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Предыдущий вариант

инициализации массивов для построения таблицы сообщений об ошибках можно переписать так.

char е1[] = "Деление на 0\n";
char е2[] = "Конец файла\n";
char еЗ[] = "В доступе отказано\n";


Слайд 31Одномерные массивы
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Удивляет такая "непредусмотрительность"

C++?
Язык C++ предназначен для профессиональных программистов, и его задача — предоставить им возможность создавать максимально эффективный код
Любая проверка корректности доступа средствами C++ существенно замедляет выполнение программы.
Одномерные массивы Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаУдивляет такая

Слайд 32Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В C++ строка определяется

как символьный массив, который завершается нулевым символом ('\0').
При определении длины символьного массива необходимо учитывать признак ее завершения и задавать его длину на единицу больше длины самой большой строки из тех, которые предполагается хранить в этом массиве.
Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВ C++ строка определяется как символьный массив, который завершается нулевым

Слайд 33Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Например, объявляя массив str,

предназначенный для хранения 10-символьной строки, следует использовать следующую инструкцию.

char str[11];

Заданный здесь размер (11) позволяет зарезервировать место для нулевого символа в конце строки.

Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаНапример, объявляя массив str, предназначенный для хранения 10-символьной строки, следует

Слайд 34Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
C++ позволяет определять строковые

литералы.
Вспомним, что строковый литерал — это список символов, заключенный в двойные кавычки.
Вот несколько примеров.
"Привет"
"Мне нравится C++"
"#$%@@#$"
""

Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаC++ позволяет определять строковые литералы.Вспомним, что строковый литерал — это

Слайд 35Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Вам не нужно вручную

добавлять в конец строковых констант нулевые символы. С++-компилятор делает это автоматически.
Следовательно, строка "ПРИВЕТ" в памяти размещается так, как показано на этом рисунке:

Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаВам не нужно вручную добавлять в конец строковых констант нулевые

Слайд 36Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Проще всего считать слово

с клавиатуры, создав массив, который примет это слово с помощью инструкции cin.

Считывание слова, введенного пользователем с клавиатуры, отображено в следующей программе.
Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаПроще всего считать слово с клавиатуры, создав массив, который примет

Слайд 37Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include


using namespace std;

int main()
{
char str[80];
cout << "Введите строку: ";
cin >> str; // Считываем строку с клавиатуры.
cout << "Вот ваша строка: ";
cout << str;
}

Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include   using namespace std;  int

Слайд 38Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Несмотря на то что

эта программа формально корректна, она не лишена недостатков. Рассмотрим следующий результат ее выполнения.

Введите строку: Это проверка
Вот ваша строка: Это

Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаНесмотря на то что эта программа формально корректна, она не

Слайд 39Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
оператор ">>" прекращает считывание

строки, как только встречает символ пробела, табуляции или новой строки (будем называть эти символы пробельными).
Для решения этой проблемы можно использовать еще одну библиотечную функцию gets(). Общий формат ее вызова таков.
gets(имя_массива);
ВНИМАНИЕ! В новой версии VS2015 данная функция заменена на gets_s

Слайд 40Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
В следующей версии предыдущей

программы демонстрируется использование функции gets(), которая позволяет ввести в массив строку символов, содержащую пробелы.
При этом имейте в виду, что ни оператор ">>", ни функция gets() не выполняют граничной проверки (на отсутствие нарушения границ массива). Поэтому, если пользователь введет строку, длина которой превышает размер массива, возможны неприятности, о которых упоминалось выше.

Слайд 41Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include

#include
using namespace std;

int main()
{
char str[80];
cout << "Введите строку: ";
gets_s(str); // Считываем строку с клавиатуры.
cout << "Вот ваша строка: ";
cout << str;
}

Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  #include   using namespace std;

Слайд 42Строки
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Язык C++ поддерживает множество

функций обработки строк. Самыми распространенными из них являются следующие.
strcpy()
strcat()
strlen()
strcmp()

Для вызова всех этих функций в программу необходимо включить заголовок .
Строки Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаЯзык C++ поддерживает множество функций обработки строк. Самыми распространенными из

Слайд 43Функция strcpy()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Общий формат вызова

функции strcpy() таков:

strcpy (to, from);

Функция strcpy() копирует содержимое строки from в строку to.
Функция strcpy() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаОбщий формат вызова функции strcpy() таков:   strcpy

Слайд 44Функция strcpy()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include
#include


using namespace std;

int main()
{
char str[80];
strcpy(str, "Привет");
cout << str;

return 0;
}
Функция strcpy() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова	#include 	#include 	using namespace std;	int main()	{	  char str[80];

Слайд 45Функция strcat()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Обращение к функции

strcat() имеет следующий формат.

strcat(s1, s2);

Функция strcat() присоединяет строку s2 к концу строки s1, при этом строка s2 не изменяется. Обе строки должны завершаться нулевым символом.
Функция strcat() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаОбращение к функции strcat() имеет следующий формат.

Слайд 46Функция strcat()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include
#include


using namespace std;

int main()
{
char s1[20], s2[10];
strcpy(s1, "Привет");
strcpy(s2, " всем!");
strcat(s1, s2);
cout << s1;
return 0;
}
Функция strcat() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова	#include 	#include 	using namespace std;	int main()	{	  char s1[20],

Слайд 47Функция strcmp()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Обращение к функции

strcmp() имеет следующий формат:

strcmp(s1, s2);

Функция strcmp() сравнивает строку s2 со строкой s1 и возвращает значение 0, если они равны. Если строка s1 лексикографически (т.е. в соответствии с алфавитным порядком) больше строки s2, возвращается положительное число. Если строка s1 лексикографически меньше строки s2, возвращается отрицательное число.

Функция strcmp() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаОбращение к функции strcmp() имеет следующий формат:

Слайд 48Функция strcmp()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include


#include
#include
using namespace std;

bool password();
int main()
{
if (password()) cout << "Вход разрешен.\n";
else cout << "В доступе отказано.\n";

return 0;
}
Функция strcmp() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  #include  #include

Слайд 49Функция strcmp()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
bool

password()
{
char s[80];
cout << "Введите пароль: ";
gets(s);
if (strcmp(s, "пароль")) { // Строки различны.
cout << "Пароль недействителен.\n";
return false;
}
// Сравниваемые строки совпадают.
return true;
}

Функция strcmp() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  bool password()  {	char s[80];	cout

Слайд 50Функция strlen()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Общий формат вызова

функции strlen() таков:

strlen(s);
 
Здесь s — строка. Функция strlen() возвращает длину строки, указанной аргументом s.

Функция strlen() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаОбщий формат вызова функции strlen() таков:	strlen(s);   Здесь s

Слайд 51Функция strlen()
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include


#include
#include
using namespace std;

int main()
{
char str[80];
cout << "Введите строку: "; gets(str);
cout << "Длина строки равна: " << strlen(str);

return 0;
}
Функция strlen() Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  #include  #include

Слайд 52string
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
string – это STL’евский класс основанный

на шаблонах, который входит в стандартную библиотеку C++
 Для использования данного класса в ваших приложениях, нужно подключить заголовочный файл string

#include
stringНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинниковаstring – это STL’евский класс основанный на шаблонах, который входит в стандартную

Слайд 53Отображение строки в обратном порядке.
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова

#include
#include
#include
using namespace std;

int main()
{
char str[80];
int i;
cout << "Введите строку: ";
gets(str);
for (i = strlen(str) - 1; i >= 0; i--)
cout << str[i];
return 0;
}

Отображение строки в обратном порядке.Никитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова  #include  #include  #include

Слайд 54string
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
#include
#include

int main()
{

std::string str;
std::cout << "Enter your name: ";
std::getline(std::cin, str);
std::cout << "Hello, " << str << "!!! \n";
return 0;
}
stringНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.Овчинникова#include #include int main(){  std::string str;  std::cout

Слайд 55string
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Чтобы узнать длину строки, можно

воспользоваться функцией-членом size(), или length()

str.size();
str.length();

str.empty(); Что делает?
stringНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаЧтобы узнать длину строки, можно воспользоваться функцией-членом size(), или length()		str.size();	str.length();	str.empty(); Что делает?

Слайд 56String
Никитин Михаил Евгеньевич, 2015
ГБПОУ ПК имени П.А.Овчинникова
Как мы можем узнать, совпадают

ли строки?
if (str == str2)

А как же можно скопировать одну строку в другую?
std::string str2; // Создание объекта строки
str2 = str;

Как добавить к первой строке вторую и записать в третью?
std::string str1 = "Hello";
std::string str2 = "World";
std::string str3 = str1 + str2;
StringНикитин Михаил Евгеньевич, 2015ГБПОУ ПК имени П.А.ОвчинниковаКак мы можем узнать, совпадают ли строки?	if (str == str2)А как

Что такое shareslide.ru?

Это сайт презентаций, где можно хранить и обмениваться своими презентациями, докладами, проектами, шаблонами в формате PowerPoint с другими пользователями. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами.


Для правообладателей

Яндекс.Метрика

Обратная связь

Email: Нажмите что бы посмотреть