- •Задание №1. Строки и функции в c.
- •В строке string1 определяет последнее вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается -1.
- •Задание №2. Массивы и указатели.
- •Задание №3. Ввод данных из командной строки.
- •Задание №4. Побитовые операции
- •Задание №5. Шаблоны функций.
- •Задание №6. Основы ооп.
- •Задание №7. Перегрузка операторов.
- •Задание №8. Шаблоны классов.
- •Приложение 1. Пример реализации контейнера
- •Int ind, size;
- •Iterator begin(void){ return V; }
- •Void push(t& X) { c.Push_back(X);};
- •Void main(void)
- •V1.Push_back(I);
- •Int I; float X; char name[50];
- •Int I; float X; char name[50];
Общие требования к выполненным лабораторным работам, без выполнения которых они не рассматриваются:
отступы в программах должны быть;
отступы и скобки в программах должны быть в одном стиле;
комментариев к программам должно быть достаточно для объяснения любой её строчки;
для заданий №1-4 запрещается использовать конструкции языка C++. Для этого нужно сохранять исходные файлы с расширением «.c», а не «.cpp».
Задание №1. Строки и функции в c.
Написать следующие функции в двух вариантах: с использованием индексов и указателей. Вначале должна быть написана функция с использованием индексов. Второй вариант должен являться чисто формальным преобразованием выражений с индексами в выражения с указателями (которое всегда осуществляется самим компилятором, когда он встречает выражения с индексами).
Добавляет строку string2 в конец строки string1 и возвращает указатель на сцепленную строку:
char* strcat(char* string1, char* string2)
Добавляет строку string2 в конец строки string1 и возвращает указатель на сцепленную строку. Количество добавляемых символов ограничено значением n.
char* strncat(char* string1, char* string2, unsigned int n)
Сравнивает лексографически строки string1 и string2 и возвращает значение, определяющее их соотношение:
< 0 - string1 < string2
0 - string1 == string2
0 - string1 > string2
int strcmp(char* string1, char* string2)
То же, что и strcmp, только сравнивается не более n первых символов.
int strncmp(char* string1, char* string2, unsigned int n)
Копирует строку string2 вместе с завершающим нулевым символом на место строки string1, и возвращает указатель на строку string1.
char* strcpy(char* string1, char* string2)
Копирует не более n символов строки string2 на место строки string1, и возвращает указатель на строку string1. Если значение n меньше или равно длине строки string2, нулевой символ ('\0') не добавляется автоматически в новую строку.
char* strncpy(char* string1, char* string2, unsigned int n)
В строке string1 определяет последнее вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается -1.
char* rat(char* string1, char* string2)
Возвращает указатель на первое местонахождение символа chr в строке string. chr м.б. нулевым символом ('\0'). Функция возвращает значение NULL, если символ не найден.
char* strchr(char* string, int chr)
Возвращает указатель на последнее вхождение символа chr в строке string.
char* strrchr(char* string, int chr)
Находит первое вхождение в строке string1 любого символа из строки string2 и возвращает указатель на этот символ. В случае неудачи возвращает значение NULL.
char* strpbrk(char* string1, char* string2)
Возвращает индекс символа в строке string1, который не принадлежит набору символов, задаваемому строкой string2. Завершающий нулевой символ не учитывается при поиске. Индексация, как это принято в С, начинается с нуля.
int strspn(char* string1, char* string2)
Возвращает индекс символа в строке string1, который принадлежит набору символов, задаваемому строкой string2. Завершающий нулевой символ не учитывается при поиске. Индексация, как это принято в С, начинается с нуля.
int strcspn(char* string1, char* string2)
В строке string1 определяет последнее вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается -1.
char* atr(char* string1, char* string2)
Получает область памяти для копирования строки и возвращает указатель на эту память. Возвращает значение NULL, если память выделить не удалось.
char* strdup(char* string)
Присваивает всем символам строки string новое значение, которое задается параметром chr. Возвращает указатель на измененную строку string.
char* strset(char* string, int chr)
Присваивает не более чем n первым символам строки string новое значение, которое задается параметром chr. Возвращает указатель на измененную строку string.
char* strnset(char* string, int chr, unsigned int n)
Реверсирует строку без дополнительного выделения памяти и возвращает на нее указатель.
char* strrew(char* string)
Возвращает указатель на первое вхождение подстроки string2 в строке string1. В случае неудачи возвращается значение NULL.
char* strstr(char* string1, char* string2)
Возвращает значение длинного целого, заданного символьной строкой string. Эта функция прекращает чтение строки числа с первого символа, который не может быть частью числа (это может быть и нулевой символ). Этим последним символом может быть также символ-цифра, код которого больше или равен коду '0'+base. Если значение endptr не NULL, то он указывает на указатель, значение которого является адресом символа, на котором был прекращен разбор строки.
long strtol(char* string, char** endptr, int base)
Удаляет в строке лидирующие пробелы. Возвращает указатель на преобразованную строку.
char* ltrim(char* string)
Удаляет в строке концевые пробелы. Возвращает указатель на преобразованную строку.
char* rtrim(char* string)
Удаляет в строке лидирующие и концевые пробелы. Возвращает указатель на преобразованную строку.
char* alltrim(char* string)
Заменяет в строке string length символов, начиная с символа с индексом begin, строкой string1. Возвращает указатель на преобразованную строку.
char* stuff(char* string, int begin, int length, char * string1)
Создает строку number-кратным повторением строки string1. Возвращает указатель на преобразованную строку.
char* replicate(int number, char * string1)
В строке string1 осуществляет замену подстрок string2 строками string3. Возвращает указатель на преобразованную строку.
char* strtran(char* string1, char * string2, char string3)
В строке string1 выделяет подстроку начиная с индекса begin длиной length. Возвращает указатель на сформированную строку.
char* substr(char* string1, int begin, int length)
В строке string1 выделяет левую часть длиной length. Возвращает указатель на сформированную строку.
char* left(char* string1, int length)
В строке string1 выделяет правую часть длиной length. Возвращает указатель на сформированную строку.
char* right(char* string1, int length)
В строке string1 определяет первое вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается NULL.
char* at(char* string1, char* string2)
