4 ВИВЧЕННЯ МОЖЛИВОСТЕЙ МОВИ С++ ПРИ РОБОТІ ІЗ ТЕКСТОВИМИ ФАЙЛАМИ
4.1 Мета роботи
Вивчення можливостей мови С++ при роботі із текстовими файлами. Отримання практичних навичок використання текстових файлів при вирішенні практичних задач.
4.2 Організація самостійної роботи студентів
Під час підготовки до виконання лабораторної роботи необхідно вивчити індивідуальне завдання (п. 4.3), виконати розробку алгоритму вирішення задачі та підготовити текст програми щодо реалізації розробленого алгоритму, підготовити відповідні розділи звіту та вивчити відповідний теоретичний матеріал, який викладено у лекціях: „Типи даних мови С++”, „Символьні та логічні змінні і вирази. Масиви та текстові строки”, та у наступних підручниках і навчальних посібниках [1, 4, 5, 7, 8].
Стандартна бібліотека Сі надає набір функцій для роботи з текстами. Більша частина з них орієнтована на представлені символів у вигляді одного байта. Функції можна розділити на дві групи:
1. Функції, що визначають тип символу, – чи є він буквою, цифрою, пробілом, розділовим знаком та інше. Це функції описані в стандартному заголовному файлі "ctype.h". Функції, що стосуються букв, працюють тільки для латинського алфавіту;
2. Функції для роботи з текстовими рядками. Рядком у Сі вважається послідовність байтів, обмежена наприкінці нульовим байтом. Функції роботи з рядками описані в стандартному заголовному файлі "string.h".
Бібліотека Сі надає наступні функції для визначення типу символів, описаних в стандартному заголовному файлі "ctype.h":
int isdigit(int c); |
символ c – цифра; |
int isalpha(int c); |
c – латинська буква; |
int isspace(int c); |
c – пробіл, переклад рядка й т.п.; |
int ispunkt(int c); |
c – розділовий знак; |
int isupper(int c); |
c – прописна латинська буква; |
int islower(int c); |
c – рядкова латинська буква; |
int toupper(int c); |
якщо c – латинська буква, то перетворити c у прописну букву; |
int tolower(int c); |
якщо c– латинська буква, то перетворити c у малу літеру. |
Функції, що починаються із префікса is, повертають ненульове значення (тобто істину), якщо символ з кодом c належить зазначеному класу, і нульове значення у протилежному випадку. Функції toupper та tolower перетворюють латинські букви до верхнього або нижнього регістра, на інших символах вони діють тотожно.
Прототипи найбільше часто використовуваних функцій для роботи з текстовими рядками наведені нижче:
size_t strlen(const char *s); довжина рядка.
char *strcpy(char *dst, const char *src); копіювати рядок src у рядок dst;
char *strncpy(char *dst, const char *src, size_t maxlen); копіювати рядок src в dst, не більше maxlen символів;
char *strcat(char *dst, const char *src); копіювати рядок src у кінець dst (конкатенація рядків);
void *memmove(void *dst, const void *src, size_t len); копіювати область пам'яті з адресою src розміром len байтів в область пам'яті з адресою dst;
void *memset(void *dst, int value, size_t len); записати значення value у кожний з len байтів, починаючи з адреси dst;
int strcmp(const char *s1, const char *s2); лексикографічне порівняння рядків s1 та s2. Результат нульовий, якщо рядки рівні, негативний, якщо перший рядок менше ніж другий, і позитивний, якщо перший рядок більше другого;
int strncmp(const char *s1, const char *s2, size_t maxlen);
порівняння рядків s1 та s2. Порівнюються не більше maxlen символів;
int memcmp(const void *m1, const void *m2, size_t len); порівняння областей пам'яті з адресами m1 та m2 розміром len кожна.
char *strchr(const char *s, int c); знайти перше входження символу c у рядок s. Функція повертає покажчик на знайдений символ або нуль у випадку невдачі;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.