Перевірка та перетворення символів
Файл ctype.h містить декілька макровизначень, що перевіряють, до якого класу належать символи.
Визначення:
int c;
Таблиця 5.3 – Функції перевірки належності символів
Функція | Призначення |
isalpha (c) | перевіряє, чи с є символом літерою |
isdigit (c) | перевіряє, чи с є символом цифрою |
islower (c) | перевіряє, чи с є символом рядковою літерою |
isspace (c) | перевіряє, чи с є символом пустим символом (пробіл, табуляція чи новий рядок) |
issuper (c) | перевіряє, чи с є символом прописною літерою |
isascii (c) | перевіряє, чи с є символом кодом A S C I I |
iscntrl (c) | перевіряє, чи с є символом управляючим символом |
ispunct (c) | перевіряє, чи с є символом знаком пунктуації |
isalnum (c) | перевіряє, чи с є символом літерою чи цифрою |
Приклад :
isalpha (‘s’)! = 0
isalpha (‘#’) = = 0
Функція isalpha(c) повертає ненульове значення (істина), якщо с є символом літери, та нуль (не істина) - у противному випадку. Перетворення символьних рядків:
atoi( ), atof( )
Функція atoi( ) перетворює рядок в ціле.
Функція atof( ) перетворює рядок в число із плаваючою точкою.
Система може мати зворотні функції: itoa( ) перетворює ціле в символьний рядок, а функція ftoa( ) число із плаваючою точкою в символьний рядок.
Приклад :
/*включення atoi( )*/
#include <stdio.h>
main( )
{
static char number [10];
int value;
puts(“Введіть ціле число”);
gеts(number);
value = atoi (number);
printf(“Число було%d\n”,value);
}
Функція atoi( ), ігноруючи початкові і кінцеві пропуски, обробляє цифри та алгебраїчний знак, якщо він є. Обробка ведеться до тих пір, поки обробляємий символ є цифрою чи знаком.
Функція atof( ) виконує ті ж самі дії для чисел із плаваючою точкою. Вона повертає тип double, саме тому повинна бути описана як double у використовуючий її програмі.
Кожному символу ставиться у відповідність ASCII-код. Таблиця ASCII-кодів наведена у додатку Д.
Контрольні запитання
1. Що таке символ?
2. Що таке ASCII-код символу?
3. Уявлення рядка у пам’яті.
4. Наведіть функції для роботи з рядками.
5. Яка бібліотека містить функції для роботи з рядками?
Лабораторна робота № 6 Структури. Об'єднання. Бітові поля структур і об'єднань. робота з файлами.
Мета роботи
Отримати практичні навички при використанні операцій обробки структур та об’єднань. Навчитись зберігати дані структур у типізованих файлах.
Завдання на лабораторну роботу
1. Ознайомитися з теоретичними відомостями.
2. Скласти та виконати на ПЕОМ програми відповідно до індивідуального завдання. Номер завдання необхідно отримати у викладача. Дані повинні зберігатись у структурі або об’єднанні відповідно до індивідуального завдання. Реалізувати ввід та вивід даних у файл.
3. Оформити та захистити звіт.
Індівідуальні завдання
Задача 1. Дані про учня складаються з його ім’я та прізвища та назви класу (року навчання та букви), в якому він вчився. Є інформаційний масив, в якому містяться дані про учнів школи та оцінки за останню чверть.
а) з’ясувати, скільки учнів школи не мають оцінки нижче чотирьох.
б) зібрати в інформаційному масиві g дані про найкращих учнях школи, тобто учнях, що не мають оцінки нижче чотирьох та за сумою балів не поступають іншим учням свого та паралельних класів.
Задача 2. Дані про автомобіль складаються з його марки, номера та прізвища власника. Є інформаційний масив f, в якому дані про декількох автомобілях. Знайти:
а) прізвища власників та номера авто даної марки;
б) кількість авто кожної марки.
Задача 3. Є інформаційний масив f, в якому дані про книги. (прізвище автора, назва та рік друку).
а) знайти назви книг даного автору, що надруковані з 1960 р.
б) визначити чи є книга с назвою «Інформатика». Якщо є, то видати прізвище автора та рік друку. Якщо таких книг декілька, то видати всі дані за цими книгами.
Задача 4. Є інформаційний масив f, що містить номера телефонів працівників підприємства: прізвище співробітника, його ініціали та номер телефону. Знайти телефон співробітника за його прізвищем та ініціалами.
Задача 5. Є інформаційоний масив f, в якому містяться різні дати. Кожна дата – це число, місяць та рік. Знайти:
а) рік з самим малим номером;
б) усі весняні дати;
в) саму пізню дату.
Задача 6. Є інформаційний масив f, в якому дані про кубики: розмір кожного кубику (довжина ребра в сантиметрах), його колір (червоний, жовтий, зелений чи синій) та матеріал (дерев’яний, металевий, картонний). Знайти:
а) кількість кубиків кожного з перелічених кольорів та їх сумарний об’єм;
б) кількість дерев’яних кубиків з ребром 3 см та кількість металевих кубиків з ребром, більшим 5 см.