Многомерные массивы, строки и структуры (раздаточный материал 3)
Описание файла
PDF-файл из архива "Многомерные массивы, строки и структуры (раздаточный материал 3)", который расположен в категории "". Всё это находится в предмете "информатика" из 2 семестр, которые можно найти в файловом архиве МАИ. Не смотря на прямую связь этого архива с МАИ, его также можно найти и в других разделах. Архив можно найти в разделе "остальное", в предмете "информатика" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
Многомерные массивыint matr[6][8] – массив из 6 строк и восьми столбцов.Инициализация многомерного массиваint mass1 [ ][ ] = { {1, 1}, {0, 2}, {1, 0} };int mass2 [3][2] = {1, 1, 0, 2, 1, 0};Пример. Программа определяет в целочисленной матрице номер строки, котораясодержит наибольшее количество элементов, равных нулю.
Переменная istr –номер искомой строки, Kol – количество нулевых элементов в текущей (i-ой)строке, MaxKol – максимальное количество нулевых элементов.СтрокиСтрока- массив символов заканчивающихся нуль-символом (‘\0’).Если строка при определении инициализируется, то ее размерность можноопускатьchar str[ ] = “Vasia” ; // выделено и заполнено 6 байт.Инициализация строковой константы (последующее изменение не допускается)char *str = “Vasia”;Функции работы со строками стандартной библиотеки языка CВыделение памяти под многомерный массив – самая левая размерность можетбыть переменной:Обе размерности задаются динамически на этапе выполнения:Объявлены в заголовочных файлах <string.h> и <cstring>)char *strcat(char *s1, char *s2); - добавляет строку s2 в конец строки s1;char *strchr(char *s, int ch); - ищет символ в строке;int strcmp(char *s1, char *s2); сравнивает строки и возвращает ноль, если s1равно s2, отрицательное, если s1 меньше s2, и положительное, если наоборот;int strcoll(char *s1, char *s2); сравнивает строки с учетом локализации setlocalechar *strcopy(char *s1, char *s2); - копирует строку s2 в строку s1, возвращает s1;size_t strlen(char *s) – возвращает длину строки;char *strstr(char *s1, char *s2); - ищет первое вхождение подстроки s2 в строкеs1, возвращает указатель на место первого вхождения, если поиск неудачен –возвращает NULL;size_t strcspn(char *s1, char *s2); - возвращает длину начальной подстрокистроки s1, не содержащей ни одного символа из строки s2, то есть индекспервого вхождения какого-либо символа строки s2 в строке s1;strncat ( ), strncmp( ), strncopy( ) - учитывают первые n символов строки s2.Типы данных, определяемые пользователемПереименование типов (typedef)typedef тип новое_имя [размерность];Использование новых типовКопирование строки в строку – первый способПеречисления (enum)enum [имя_типа] {список_констант};Копирование строки в строку – второй способМожно и так: while(*d++ = *src++);Копирование строки в строку – третий способ#include <stdio.h>#include <stdlib.h>#include <string.h>int main( ) {char s1[ ]="abcdef", s2[ ]="yes";strcpy(s1,s2);printf("%s", s1);}Выводит “yes”Структуры (struct)Структура –составной тип данных, который может содержать элементы разныхтипов.
В C++ структура – частный случай класса.Объединения (union)Объединение – частный случай структуры, все поля которой располагаются поодному адресу. Используется для экономии памяти. когда известно, что большеодного поля одновременно не потребуетсяИмя структуры является новым типом данных, который можно использовать дляопределения указателей и выделения памяти аналогичным структурамИнициализация структурыДоступ к полям структуры выполняется с помощью оператора выбора «.» точка при обращении к полю через имя структуры и с помощью «->» - стрелкапри обращении через указатель:Битовые поляОсобый вид структуры, используемый для хранения плотно упакованныхдвоичных данныхОбъединения часто используются для разной интерпретации одного того жебитового представления.