Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
О.О.П / Лабораторні роботи / Лабораторна робота 11.doc
Скачиваний:
8
Добавлен:
30.05.2020
Размер:
72.7 Кб
Скачать

Лабораторна робота №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, розкриваємо список, потягнувши його за нижню кромку (захопивши її мишею).