Программирование на языках высокого уровня
Общие сведения
Задача A
Задача B
Задача C
Задача D
Подсказка
Подсказка
Подсказка
Подсказка
220.50K
Category: programmingprogramming

Программирование на языках высокого уровня

1. Программирование на языках высокого уровня

Лаб. работа 13. Строки и модули

2. Общие сведения

Требуется написать модуль, реализующий функции для работы со
строками, аналогичные функциям из библиотеки string. Выбор
функций осуществляется в соответствии с вариантом по уровню
сложности.
Кроме этого, требуется написать программу, осуществляющую
тест реализованных функций. Тест осуществляется следующим
образом:
1. Требуется ввести строки, являющиеся входными данными
2. Выполнить действие функции над ними
3. Вывести на экран результат выполнения функции

3. Задача A

Реализовать функции
• strlen
• strcpy

4. Задача B

Реализовать функции
• strlen
• strcpy
• strcat
• strcmp

5. Задача C

Реализовать функции
• strlen
• strcpy
• strcat
• strcmp
• strchr

6. Задача D

Реализовать функции
• strlen
• strcpy
• strcat
• strcmp
• strchr
• strstr

7. Подсказка

char *strcat(char *dest, const char *src);
дописывает строку src в конец dest
char *strncat(char *dest, const char *src, size_t n);
дописывает не более n начальных символов строки src (или
всю src, если её длина меньше) в конец dest
char *strchr(const char *s, int c);
возвращает адрес символа c в строке s, начиная с головы,
или NULL, если строка s не содержит символ c
char *strrchr(const char *s, int c);
возвращает адрес символа c в строке s, начиная с хвоста, или
NULL, если строка s не содержит символ c
int strcmp(const char *, const char *);
лексикографическое сравнение строк (возвращает "0", если
строки одинаковые, положительное, если первая строка
больше, и отрицательное, если меньше)
int strncmp(const char *, const char *, size_t);
лексикографическое сравнение первых n байтов строк
int strcoll(const char *, const char *);
лексикографическое сравнение строк с учетом локали collating
order
char *strcpy(char *toHere, const char *fromHere);
копирует строку из одного места в другое
char *strncpy(char *toHere, const char *fromHere, size_t n);
копирует до n байт строки из одного места в другое
char *strerror(int);
возвращает строковое представление сообщения об ошибке
errno (не потоко-безопасная)
size_t strlen(const char *);
возвращает длину строки
size_t strspn(const char *s, const char *accept);
определяет максимальную длину начальной подстроки,
состоящей исключительно из байтов, перечисленных в accept
size_t strcspn(const char *s, const char *reject);
char *strpbrk(const char *s, const char *accept);
char *strstr(const char *haystack, const char *needle);
определяет максимальную длину начальной подстроки,
состоящей исключительно из байтов, не перечисленных в
reject
находит первое вхождение любого символа, перечисленного в
accept
находит первое вхождение строки needle в haystack

8. Подсказка

Для реализации модуля требуется добавить в проект два файла - .cpp и .h
В .h файл поместить заголовки функций
В .cpp файл поместить реализации функций
В основной программе, использующей созданный модуль, добавить:
#include "mymodule.h“
Где mymodule.h – название заголовочного файла
sum.h
sum.cpp
int sum(int a, int b);
int sum(int a, int b)
{
return a + b;
}

9. Подсказка

Для реализации модуля требуется добавить в проект два файла - .cpp и .h
В .h файл поместить заголовки функций
В .cpp файл поместить реализации функций
В основной программе, использующей созданный модуль, добавить:
#include "mymodule.h“
Где mymodule.h – название заголовочного файла
sum.h
sum.cpp
int sum(int a, int b);
int sum(int a, int b)
{
return a + b;
}

10. Подсказка

Функция strcmp работает следующим образом:
Идет в цикле по первой строке, пока одна из них не закончится (пока не
встретится символ с кодом 0). При этом функция вычисляет разность
символов (str2[i] – str1[i]), и если эта разность не равна нулю, завершаем
цикл и через return возвращаем это значение. Если строка закончилась, но
разности всегда нулевые – следовательно, строки равны и функция
возвращает ноль.
English     Русский Rules