Відладка програми
При відладці програми в покроковому режимі слід відстежувати:
правильність передачі параметрів функції,
правильність виходу на початковий символ підрядка,
правильність контролю параметрів,
правильність копіювання символів,
правильність остаточного формування рядка-результату (досить поширеною помилкою є відсутність ознаки кінця в рядку-результаті).
Дуже важливо підібрати для відладки такі вхідні дані, які дозволили б переконатися в правильному функціонуванні програми на усіх гілках її алгоритму. Ми при відладці цієї роботи використовували в усіх випадках рядок-джерело виду : "0123456789". Такий вид дозволяє легко встановити по виводу на екран, яке перетворення було виконане функцією. Параметри pos і len ми задавали в таких варіантах:
pos=2, len=3 |
- - перевірка правильності роботи при правильних завданнях параметрів |
pos=0, len=4 |
- - підрядок починається з початку рядка |
pos=6, len=4 |
- - підрядок закінчується на кінці рядка |
pos=0, len=10 |
- - підрядок захоплює увесь рядок |
pos=3, len=0 |
- - підрядок нульової довжини |
pos=8, len=4 |
- - особливий випадок: підрядок матиме меншу довжину, чим задано |
pos=3, len=-2 |
- - помилка: негативна довжина |
pos=-1, len=3 |
- - помилка: негативна початкова позиція |
pos=10, len=3 |
- - помилка: позиція почала більше довжини джерела |
Завдання для виконання
Розробити функцію, яка виконує ту обробку символьного рядка, яка визначена у Вашому індивідуальному завданні. При реалізації функції забороняється користуватися функціями бібліотек мови C.
Примітки:
У більшості завдань необхідно передбачити роботу функції при некоректному завданні її параметрів.
У тих завданнях, де застосований термін "слово", під ним розуміється будь-яка послідовність символів, обмежена будь-яким числом пропусків і/або початком/кінцем рядка.
Варіанти завдань.
Варіант 1
Функція підраховує кількість слів в рядку.
Варіант 2
Функція дописує один рядок в кінець інший.
Варіант 3
Функція виділяє перше слово з рядка.
Варіант 4
Функція порівнює два рядки, ігноруючи відмінності в регістрах.
Варіант 5
Функція розбиває рядок на дві частини: до першого входження заданого символу і після нього.
Варіант 6
Функція вирівнює рядок по лівому краю до заданої довжини.
Варіант 7
Функція копіює рядок в інший рядок заданої довжини і розміщує текст першого рядка по центру другого рядка.
Варіант 8
Функція видаляє з рядка задану кількість символів, починаючи із заданої позиції.
Варіант 9
Функція визначає в рядку номер позиції слова із заданим номером.
Варіант 10
Функція замінює символи рядка з одного заданого алфавіту на символи іншого алфавіту.
Варіант 11
Функція знаходить останнє входження в рядок заданого підрядка
Варіант 12
Функція доводить довжину рядка до заданої, вставляючи пропуски між словами