
- •1.Операции с адресами
- •2.Переменная указатель
- •3.Операции над переменными указателями
- •4.Указатели и массивы
- •5.Описание функции
- •11.Варианты описания и использования функций. Аргументом функции является двухмерный массив (матрица).
- •12.Варианты описания и использования функций. Аргументом функции является другая функция.
- •Void f1(тип (*агтс)(тип1б тип2б…)б…)
- •13.Динамическая память «куча». Функции выделения и освобождения памяти.
- •14.Символьные строки. Определение, отличие от последовательности символов.
- •15.Объявления строковых данных (перечислить способы). Задание строки в форме строковой константы.
- •21.Основные функции для работы со строками.
- •22.Обязательная последовательность действий при работе с файлами. Описание файловой переменной.
- •23.Открытие файла.
- •24.Чтение данных из файла
- •25.Запись данных в файл
- •26.Закрытие файла. Необходимость выполнения этого действия.
- •27.Дополнительные функции работы с файлом.
- •28.Локальные и глобальные переменные.
15.Объявления строковых данных (перечислить способы). Задание строки в форме строковой константы.
Существуют следующие способы описания и задания строк:
Строковая константа
Символьный массив как строка
Указатель на символьный тип как на строку
Многомерный символьный массив как набор строк
Массив указателей на символьный тип как массив строк
Строковая константа. В кавычках записываются символы и ставится нуль-символ «\0». Количество байт, занимаемые строковой константой равны количеству символов в строке + нуль-символ.
16.Задание строки в виде массива символьного типа.
Явное указание длины массива char имя[N] . Если количество элементов будет больше описанного, то выдаст ошибку.
При неявном указании длины массива char имя[]= “послед. символов\0” . При таком описании к каждому символу строки можно обращаться, используя имя массива имя[i] .
17.Описание строки в виде указателя на символьный тип
char *имя = “посл. символов\0” .
Обращаться к каждому символу по формуле *(имя + i).
Если инициализация не выполнена, необходимо выделять динамическую память под данный указатель. При таком описании к отдельному символу строки можно обращаться имя[i] .
18.Описание набора строк в виде многомерного символьного массива.
char имя[m][n] = { “строка1”, “строка 2”, … , “строка L” }
19.Описание набора строк в виде массива указателей на символьный тип.
Для объявления нескольких строк можно использовать указатели.
char *имя[M]={“строка1”, “строка2”, … , “строка L”} , где L ≤ M .
Обращение по формуле *(имя[i] + j) .
20.Ввод-вывод строковых данных.
Перед вводом строковых данных обязательно следует выделить память для вводимой строки. Существует 2 способа:
Задать количество символов строки при описании char st[30];
Если описан указатель на строку, то необходимо выделить динамическую память, используя соответствующие операторы.
char *pst; pst=new char[30];
или
char *pp;
pp=new char*[10];
for(int i=0; i<10; i++)
pp[i]=new char[25];
Для ввода используеются 2 функции:
scanf() с форматом %S
Вводит до первого пробела/Enter/Tab…
gets(имя строковой переменной)
Вводит до нажатия Enter
Для вывода строковых данных используют 2 функции:
printf() с форматом %S
Для установки курсора в начало следующей строки не обходимо добавить ‘\n’ при выводе.(в отличии от puts())
puts(имя строковой переменной). После вывода строки устанавливает курсор в начало следующей строки.
21.Основные функции для работы со строками.
strlen(s) – определяет длину строки и возвращает количество символов без нулевого символа.
strcat(s1,s2) – производит соединение двух строковых переменных s1 и s2. При этом s2 присоединятется к s1. 1-й аругмент – только строковая переменная, 2-й – переменная или строковая константа.
strncat(s1,s2,n) – соединяет n литер из строки s2 со строкой s1. Функция приписывает к строке s1 первые n символов из s2 и Не добавляет нуль-символ.
strcmp(s1,s2) – производит сравнение двух строк s1 и s2. При сравнении происходит посимвольное вычитание кодов символов. Сравнение выполняется до первого появления неравных символов.
strncmp(s1,s2,n) – производит сравнение n начальных символов двух строк s1 и s2.
strcpy(s1, s2) - выполняет копирование символов строки s2 в строку s1 и возвращает строку s1.
strncpy(s1, s2, n) - выполняет копирование n символов строки s2 в строку s1 и возвращает строку s1. Не дописывает нуль-символ.
strchr(s,c) – возвращает указатель на первый встреченный в строке ‘s’ символ ‘c’. Если такого символа в строке не оказалось, возвращает NULL.
strrchr(s,c) – возвращает указатель на последний встреченный в строке ‘s’ символ ‘c’.
strstr(s1,s2) – возвращает указатель на первое вхождение строки s2 в строку s1.
strtok(s1, z) – разбивает строку s1 на отдельные лексемы, которые разделены символами из строки z.
sprinf(str, “format”, var) – используется для преобразования числовых значений в строковые. str – указатель на строку, в которую будут сохранены форматированные символы. “format” – форматные спецификации. var – перечень форматируемых переменных.
Для использования строковых функций необходимо подключить файл string.h