Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задания 2015 r1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
208.9 Кб
Скачать

Общие требования к выполненным лабораторным работам, без выполнения которых они не рассматриваются:

  • отступы в программах должны быть;

  • отступы и скобки в программах должны быть в одном стиле;

  • комментариев к программам должно быть достаточно для объяснения любой её строчки;

  • для заданий №1-4 запрещается использовать конструкции языка C++. Для этого нужно сохранять исходные файлы с расширением «.c», а не «.cpp».

Задание №1. Строки и функции в c.

Написать следующие функции в двух вариантах: с использованием индексов и указателей. Вначале должна быть написана функция с использованием индексов. Второй вариант должен являться чисто формальным преобразованием выражений с индексами в выражения с указателями (которое всегда осуществляется самим компилятором, когда он встречает выражения с индексами).

  1. Добавляет строку string2 в конец строки string1 и возвращает указатель на сцепленную строку:

char* strcat(char* string1, char* string2)

  1. Добавляет строку string2 в конец строки string1 и возвращает указатель на сцепленную строку. Количество добавляемых символов ограничено значением n.

char* strncat(char* string1, char* string2, unsigned int n)

  1. Сравнивает лексографически строки string1 и string2 и возвращает значение, определяющее их соотношение:

  • < 0 - string1 < string2

  • 0 - string1 == string2

  • 0 - string1 > string2

int strcmp(char* string1, char* string2)

  1. То же, что и strcmp, только сравнивается не более n первых символов.

int strncmp(char* string1, char* string2, unsigned int n)

  1. Копирует строку string2 вместе с завершающим нулевым символом на место строки string1, и возвращает указатель на строку string1.

char* strcpy(char* string1, char* string2)

  1. Копирует не более n символов строки string2 на место строки string1, и возвращает указатель на строку string1. Если значение n меньше или равно длине строки string2, нулевой символ ('\0') не добавляется автоматически в новую строку.

char* strncpy(char* string1, char* string2, unsigned int n)

  1. В строке string1 определяет последнее вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается -1.

char* rat(char* string1, char* string2)

  1. Возвращает указатель на первое местонахождение символа chr в строке string. chr м.б. нулевым символом ('\0'). Функция возвращает значение NULL, если символ не найден.

char* strchr(char* string, int chr)

  1. Возвращает указатель на последнее вхождение символа chr в строке string.

char* strrchr(char* string, int chr)

  1. Находит первое вхождение в строке string1 любого символа из строки string2 и возвращает указатель на этот символ. В случае неудачи возвращает значение NULL.

char* strpbrk(char* string1, char* string2)

  1. Возвращает индекс символа в строке string1, который не принадлежит набору символов, задаваемому строкой string2. Завершающий нулевой символ не учитывается при поиске. Индексация, как это принято в С, начинается с нуля.

int strspn(char* string1, char* string2)

  1. Возвращает индекс символа в строке string1, который принадлежит набору символов, задаваемому строкой string2. Завершающий нулевой символ не учитывается при поиске. Индексация, как это принято в С, начинается с нуля.

int strcspn(char* string1, char* string2)

  1. В строке string1 определяет последнее вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается -1.

char* atr(char* string1, char* string2)

  1. Получает область памяти для копирования строки и возвращает указатель на эту память. Возвращает значение NULL, если память выделить не удалось.

char* strdup(char* string)

  1. Присваивает всем символам строки string новое значение, которое задается параметром chr. Возвращает указатель на измененную строку string.

char* strset(char* string, int chr)

  1. Присваивает не более чем n первым символам строки string новое значение, которое задается параметром chr. Возвращает указатель на измененную строку string.

char* strnset(char* string, int chr, unsigned int n)

  1. Реверсирует строку без дополнительного выделения памяти и возвращает на нее указатель.

char* strrew(char* string)

  1. Возвращает указатель на первое вхождение подстроки string2 в строке string1. В случае неудачи возвращается значение NULL.

char* strstr(char* string1, char* string2)

  1. Возвращает значение длинного целого, заданного символьной строкой string. Эта функция прекращает чтение строки числа с первого символа, который не может быть частью числа (это может быть и нулевой символ). Этим последним символом может быть также символ-цифра, код которого больше или равен коду '0'+base. Если значение endptr не NULL, то он указывает на указатель, значение которого является адресом символа, на котором был прекращен разбор строки.

long strtol(char* string, char** endptr, int base)

  1. Удаляет в строке лидирующие пробелы. Возвращает указатель на преобразованную строку.

char* ltrim(char* string)

  1. Удаляет в строке концевые пробелы. Возвращает указатель на преобразованную строку.

char* rtrim(char* string)

  1. Удаляет в строке лидирующие и концевые пробелы. Возвращает указатель на преобразованную строку.

char* alltrim(char* string)

  1. Заменяет в строке string length символов, начиная с символа с индексом begin, строкой string1. Возвращает указатель на преобразованную строку.

char* stuff(char* string, int begin, int length, char * string1)

  1. Создает строку number-кратным повторением строки string1. Возвращает указатель на преобразованную строку.

char* replicate(int number, char * string1)

  1. В строке string1 осуществляет замену подстрок string2 строками string3. Возвращает указатель на преобразованную строку.

char* strtran(char* string1, char * string2, char string3)

  1. В строке string1 выделяет подстроку начиная с индекса begin длиной length. Возвращает указатель на сформированную строку.

char* substr(char* string1, int begin, int length)

  1. В строке string1 выделяет левую часть длиной length. Возвращает указатель на сформированную строку.

char* left(char* string1, int length)

  1. В строке string1 выделяет правую часть длиной length. Возвращает указатель на сформированную строку.

char* right(char* string1, int length)

  1. В строке string1 определяет первое вхождение в нее строки string2. Возвращает указатель на начало вхождения. В случае неуспеха возвращается NULL.

char* at(char* string1, char* string2)