- •Лабораторна робота №11. Використання рядків
- •7.1. Загальні теоретичні відомості Рядки як одновимірні масиви символів
- •7.2. Створення віконного застосування
- •Компонент ListBox
- •Компонент ComboBox
- •Компонент-кнопка BitBtn
- •Обробка подій
- •7.3. Приклад виконання завдання
- •7.3.1. Створення віконного застосування
- •7.3.2. Створення консольного застосування
- •7.4. Індивідуальні завдання
Лабораторна робота №11. Використання рядків
Мета роботи : вивчити особливості строкових даних, правила роботи з компонентами ListBox і СomboBox. Написати і відлагодити програму роботи з рядками.
7.1. Загальні теоретичні відомості Рядки як одновимірні масиви символів
У мові З/З++ рядок - це одновимірний масив символів, заканчиваю-щийся нульовим байтом, кожен біт якого дорівнює нулю, при цьому для нульового байта визначена константа ´´ (ознака закінчення рядка або нуль-терминатор).
Для рядка, що складається з 80 символів, в описі масиву необхідно вказати розмір 81, оскільки останній байт отведится під нуль-терминатор.
Нагадаємо, що строкова константа - це набір символів, поміщених в лапки, наприклад, "Лабораторна робота по рядках" (" не вказується).
Рядки можна ініціалізувати при декларації, наприклад:
char S1[10] = "123456789", S2[ ] = "12345";
у останньому випадку розмір рядка встановлюється по фактичній кількості.
Операції над рядками рекомендується виконувати з використанням стандартних бібліотечних функцій, розглянемо найбільш часто використовувані функції бібліотеки string.h:
1) strcpy (S1, S2) - копіює вміст рядка S2 в рядок S1;
2) strcat (S1, S2) - приєднує рядок S2 до рядка S1 і поміщає його в масив, де знаходився рядок S1, при цьому рядок S2 не змінюється; нульовий байт, який завершував рядок S1, замінюється першим символом рядка S2;
3) strcmp (S1, S2) - порівнює рядки S1 і S2 і повертає значення = 0, якщо рядки рівні, тобто містять одно і те ж число однакових символів; значення <0, якщо S1<S2; і значення > 0, якщо S1 > S2.
4) strlen (S) - повертає довжину рядка, тобто кількість символів, починаючи з першого (S[0]) і до нуль-терминатора, який не враховується.
5) strstr (S1, S2) - вказує перша поява підрядка S2 в рядку S1.
6) перетворення рядка S в число (бібліотека stdlib.h) : ціле - (int) atoi(S); довге ціле - (long) atol(S); дійсне - (double) atof(S);
при виникненні помилки ці функції повертають значення 0;
7) перетворення числа V в рядок S : ціле - itoa(int V, char S, int kod); довге ціле - ltoa(long V, char S, int kod); значення параметра kod визначає вибір системи числення для перетворення і знаходиться в діапазоні 2(kod(36, для негативних чисел kod = 10.
7.2. Створення віконного застосування
Тип AnsiString
Тип AnsiString є основним строковим класом в Builder.
Часто використовувані методи цього класу: с_str() - перетворення рядка AnsiString в масив символів; Delete() - видалення символів, SubString() - копіювання підрядка; Pos() - пошук позиції; Length() - визначення довжини рядка.
Компонент ListBox
Цей компонент є списком, елементи якого вибираються за допомогою клавіатури або миші. Список елементів задається властивістю Items, методи Add, Delete і Insert якого використовуються для додавання, видалення і вставки рядків, відповідно. Об'єкт Items зберігає рядки списку. Для визначення номера виділеного елементу використовується властивість ItemIndex.
Компонент ComboBox
Список ComboBox - комбінація списку ListBox і редактора тексту Еdit, тому практично усі властивості аналогічні. Для роботи з вікном редагування використовується властивість Text, як в Edit, а для роботи із списком вибору - властивість Items, як в ListBox. Cуществует п'ять модифікацій компоненти, визначуваних її властивістю Style, вибравши в якому модифікацію csSimple, розкриваємо список, потягнувши його за нижню кромку (захопивши її мишею).