Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Zadania_2016 (1).doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
108.03 Кб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

  • < 0 - string1 < string2

  • 0 - string1 == string2

  • 0 - string1 > string2

int strcmp(const char* string1, const char* string2)

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

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

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

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

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

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

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

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

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

const char* strchr(const char* string, int chr)

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

const char* strrchr(const char* string, int chr)

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

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

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

int strspn(const char* string1, const char* string2)

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

int strcspn(const char* string1, const char* string2)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]