Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задание_лабы_иус_cpp_2сем.doc
Скачиваний:
15
Добавлен:
16.04.2015
Размер:
252.42 Кб
Скачать

Задания

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

Если оператор по горизонтали выходит за пределы окна, то он должен быть перенесен на следующую строку.

Если это не выполнено, программа к рассмотрению приниматься не будет.

При выполнении всех заданий должно быть произведено их тщательное

тестирование.

Задание N 1

Написать следующие функции в двух вариантах: с использованием

индексов и указателей. Вначале должна быть написана функция с использованием

индексов. Второй вариант должен являться чисто формальным преобразованием

выражений с индексами в выражения с указателями (которое всегда осуществляется

самим компилятором!!!!, когда он встречает выражения с индексами).

Пример разработки подобной функции приведен в приложении 04.

1

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

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

на сцепленную строку.

2

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

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

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

3

Int strcmp(char* string1, char* string2)

Сравнивает лексографически строки string1 и string2 и возвращает

значение, определяющее их соотношение:

< 0 - string1 < string2

0 - string1 == string2

> 0 - string1 > string2

4

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

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

5

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

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

строки string1, и возвращает указатель на строку string1.

6

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

Копирует не более n символов строки string2 на место строки string1,

и возвращает указатель на строку string1. Если значение n меньше или равно

длине строки string2, нулевой символ ('\0') не добавляется автоматически в

новую строку.

7

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

В строке string1 определяет последнее вхождение в нее строки

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

возвращается -1.

8

char* strchr(char* string, int chr)

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

string. chr м.б. нулевым символом ('\0'). Функция возвращает значение NULL,

если символ не найден.

9

char* strrchr(char* string, int chr)

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

string.

10

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

Находит первое вхождение в строке string1 любого символа из строки

string2 и возвращает указатель на этот символ. В случае неудачи возвращает

значение NULL.

11

Int strspn(char* string1, char* string2)

Возвращает индекс символа в строке string1, который не принадлежит

набору символов, задаваемому строкой string2. Завершающий нулевой символ не

учитывается при поиске. Индексация, как это принято в С, начинается с нуля.

12

Int strcspn(char* string1, char* string2)

Возвращает индекс символа в строке string1, который принадлежит

набору символов, задаваемому строкой string2. Завершающий нулевой символ не

учитывается при поиске. Индексация, как это принято в С, начинается с нуля.

13

char* strtok(char* string1, char* string2)

Строка string1 состоит из слов, разделенных разделителями, набор

которых задан в строке string2. При первом обращении функция возвращает

указатель на начало певого слова (начало string1). При последующих обращениях,

при этом аргумент string1 должен иметь значение NULL, возвращаются указатели

на начала последующих слов. Значение NULL возвращается, когда нет больше слов.

Все слова завершаются нулевыми символами.

14

char* strdup(char* string)

Получает область памяти для копирования строки и возвращает указатель

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

15

char* strset(char* string, int chr)

Присваивает всем символам строки string новое значение, которое

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

16

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

Присваивает не более чем n первым символам строки string новое

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

строку string.

17

char* strrew(char* string)

Реверсирует строку и возвращает на нее указатель.

18

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

Возвращает указатель на первое вхождение подстроки string2 в строке

string1. В случае неудачи возвращается значение NULL.

19

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

Возвращает значение длинного целого, заданного символьной строкой

string. Эта функция прекращает чтение строки числа с первого символа, который

не может быть частью числа (это может быть и нулевой символ). Этим последним

символом может быть также символ-цифра, код которого больше или равен коду

'0'+base. Если значение endptr не NULL, то он указывает на указатель, значение

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

20

char* ltrim(char* string)

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

преобразованную строку.

21

char* rtrim(char* string)

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

преобразованную строку.

22

char* alltrim(char* string)

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

на преобразованную строку.

23

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

Заменяет в строке string length символов, начиная с символа с

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

строку.

24

char* replicate(char* string, int number, char * string1)

Создает строку string number-кратным повторением строки string1.

Возвращает указатель на преобразованную строку.

25

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

В строке string1 щыуществляет замену подстрок string2 строками

string3. Возвращает указатель на преобразованную строку.

26

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

В строке string1 выделяет подстроку начиная с индекса begin длиной

length и записывает ее в string2. Возвращает указатель на сформированную

строку.

27

char* left(char* string1, int length, char* string2)

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

в string2. Возвращает указатель на сформированную строку.

28

char* right(char* string1, int length, char* string2)

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

в string2. Возвращает указатель на сформированную строку.

29

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

В строке string1 определяет первое вхождение в нее строки string2.

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

30

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

В строке string1 определяет последнее вхождение в нее строки string2.

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

Задание N 2

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

выглядеть приблизительно следующим образом: