- •«Утверждаю»
- •Учебно-методический комплекс
- •Астана График выполнения и сдачи заданий по дисциплине
- •Карта учебно-методической обеспеченности дисциплины Учебники, учебные пособия
- •Конспект лекционных занятий
- •Тема 1. Введение в программирование на Си. Структура программы. Директивы препроцессора. Типы данных.
- •Основные операции в языке Си.
- •Преобразование типов
- •Тема 2. Управляющие структуры. Выбор вариантов. Структура выбора If, If – Else, логические операции, операция условия, множественный выбор.
- •Тема 3. Управляющие структуры. Структуры повторения While, do – While, For. Управляющие операторы break и continue.
- •Тема 4. Массивы. Разработка программ с использованием одномерных и двумерных массивов.
- •Тема 5. Функции в Си. Создание и использование функций.
- •Тема 6. Классы памяти и разработка программ.
- •Тема 7. Указатели в Си.
- •Тема 8. Использование указателей при обработке одномерных и двумерных массивов.
- •Тема 9. Символы и строки в Си.
- •Тема 10. Функции операции над строками.
- •Функции сравнения из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 6.
- •Функции поиска из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 7.
- •Другие функции из библиотеки обработки строк. В таблице 8 приведены прототипы и краткое описание остальных функций из библиотеки обработки строк.
- •Ниже приведены примеры программы, использующих функции работы со троками.
- •Тема 11. Структуры данных в Си.
- •Тема 12. Динамические структуры данных.
- •Тема 13. Работа с файлами в Си.
- •Тема 14. Графика в Си.
- •Тема 15. Объектно-ориентированное программирование.
- •Методические рекомендации по выполнению лабораторных заданий
- •Лабораторная работа № 3. Использование операторов цикла при решении задач.
- •Лабораторная работа №4. Разработка программ с использованием одномерных массивов.
- •Лабораторная работа №5. Разработка программ с использованием двумерных массивов.
- •Лабораторная работа № 6. Программирование задач с использованием нескольких функций на языке Си.
- •Лабораторная работа № 8. Программирование задач обработки структур данных.
- •Лабораторная работа № 9. Разработка программ с использованием файловых переменных.
- •Лабораторная работа № 10. Разработка программ с использованием графических функций языка Си.
- •Содержание отчета по выполнению лабораторной работы
- •1 Задание
- •Тема 1. Запись констант, стандартных функций, выражений, операторов присваивания. Запись программ линейных структур алгоритмов.
- •Тема 2. Алгоритмическое описание, запись программ линейных, разветвляющихся.
- •Тема 3. Алгоритмическое описание, запись программ циклических структур алгоритмов.
- •Тема 4. Алгоритмическое описание, составление программ обработки одномерного массива.
- •Тема 5. Алгоритмическое описание, составление программ обработки двумерного массива.
- •Тема 6-7. Составление программ решения задач с использованием функции.
- •Рекомендуемая литература:
- •Тема 8-9. Составление программ решения задач обработки массивов с использованием указателей.
- •Тема 10-11. Программирование задач обработки символьных и стрковых данных.
- •Рекомендуемая литература.
- •Тема 12. Методы сортировки.
- •Тема 13. Составление программ решения задач с использованием структур данных.
- •Тема 14. Составление программ решения задач с использованием файла произвольного доступа.
- •Рекомендуемая литература.
- •Тема 15. Алгоритмизация графических построений.
- •Варианты заданий:
- •Сведения
- •Перечень экзаменационных вопросов по пройденному курсу
- •Глоссарий
Тема 10. Функции операции над строками.
Функции операций над строками из библиотеки обработки строк. Библиотека обработки строк содержит множество полезных функций для выполнения операций со строковыми данными, для сравнения строк, для поиска символов и других строк в строке, для деления строки на лексемы (логические части) и определения строки. Для работы с библиотекой обработки строк необходимо подключить заголовочный файл <string.h>. Перечень этих функций приведен в таблице 5.
Таблица 5 – Функции из библиотеки обработки строк
Прототип |
Описание функции |
char *strcpy(char *s1, const char *s2); |
Копирует строку s2 в строку s1. Возвращает значение s1. Функция предполагает, что строка s1 имеет размер, достаточный для того, чтобы вместить содержимое строки s2. |
char *strncpy(char *s1, const char *s2, size_t n); |
Копирует не более n символов из строки s2 в строку s1. Возвращает значение s1. |
char *strcat(char *s1, const char *s2); |
Объединяет строку s2 со строкой s1. Первый символ строки s2 переписывает символ NULL строки s1. Возвращает значение s1. |
Прототип |
Описание функции |
char *strncat(char *s1, const char *s2, size_t n); |
Объединяет не более n символов строки s2 со строкой s1. Первый символ строки s2 переписывает символ NULL строки s1. Возвращает значение s1. |
Функции сравнения из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 6.
Таблица 6 – Функции сравнения
Прототип |
Описание функции |
int strcmp(const char *sl, const char *s2); |
Сравнивает строку sl со строкой s2. Функция возвращает 0, значение меньше 0 или больше нуля, если sl соответственно равна, меньше или больше s2. |
int stricmp(const char *sl, const char *s2); |
Сравнивает строку sl со строкой s2, не делая различия между символами в нижнем и верхнем регистре. Функция возвращает 0, значение меньше 0 или больше нуля, если sl соответственно равна, меньше или больше s2. |
int strncmp(const char *sl, const char *s2, size_t n); |
Сравнивает до n символов строки sl со строкой s2. Функция возвращает 0, значение меньше 0 или больше нуля, если sl соответственно равна, меньше или больше s2. |
int strnicmp(const char *sl, const char *s2, size_t n); |
Сравнивает до n символов строки sl со строкой s2, не делая различия между символами в нижнем и верхнем регистре. Функция возвращает 0, значение меньше 0 или больше нуля, если sl соответственно равна, меньше или больше s2. |
Функции поиска из библиотеки обработки строк. Прототипы функций и краткое описание каждой из них приведены в таблице 7.
Таблица 7 – Функции поиска
Прототип |
Описание функции |
char *strchr(const char *s, int c)
|
Находит позицию первого вхождения символа с в строку s. Если с найден, то функция возвращает указатель на с в строке s. В противном случае возвращается указатель со значением NULL. |
char *strrchr(const char *s, int c)
|
Находит позицию последнего вхождения символа с в строку s. Если с найден, то функция возвращает указатель на с в строке s. В противном случае возвращается указатель со значением NULL. |
size_t strspn(const char *s1, const char *s2)
|
Определяет и возвращает длину начального сегмента строки s1, содержащего только те символы, которые входят в строку s2. |
size_t strcspn(const char *s1, const char *s2)
|
Определяет и возвращает длину начального сегмента строки s1, содержащего только те символы, которые не входят в строку s2. |
char *strpbrk(const char *s1, const char *s2)
|
Находит в строке s1 позицию первого вхождения любого из символов строки s2. Если символ из строки s2 найден, функция возвращает указатель на этот символ в строке s1. В противном случае возвращается указатель со значением NULL. |
Прототип |
Описание функции |
char *strstr(const char *s1, const char *s2)
|
Находит позицию первого вхождения подстроки s2 в строку s1. Если подстрока найдена, то функция возвращает указатель подстроки в строке s1. В противном случае возвращается указатель со значением NULL. |
char *strtok(char *s1, const char *s2) |
Последовательный вызов функции выполняет разбиение строки s1 на лексемы (логические части, такие как слова в текстовой строке), разделенные символами, содержащимися в строке s2. При первом вызове функция получает в качестве аргумента строку s1, а в последующих вызовах, чтобы продолжить разбиение той же самой строки, в качестве первого аргумента передается NULL. При каждом вызове возвращается указатель на текущую лексему строки s1. Если при очередном вызове функция находит, что лексем в строке не осталось, то возвращается NULL. |