logo
ООП для Заоч / Пинчук Лозовская Программир на С

7.2. Рядки символів

Символьний рядок - це масив типу char. Наприклад, оголосити рядкову змінну T і ініціалізувати її рядком "Ukraine Technology" можна в такий спосіб:

char T[] = "Ukraine Technology";

або так

char* T = "Ukraine Technology";

Обидва оголошення є еквівалентними.

Якщо рядок являється константою (у нашому прикладі це "Ukraine Technology"), в його кінець автоматично додається символ '\0', він відіграє роль ознаки кінця рядка. Рядки, які завершуються символом '\0', називають asciz-рядками.

Оголосити масив рядків з ініціалізацією кожного рядка заданим словом можна наступним чином:

char* A[20] = { "Понеділок", "Вівторок", "Середа", "Четвер", "П'ятниця", "Субота", "Неділя"

};

Число 20 у цьому оголошенні визначає найбільшу довжину рядка у байтах, який є елементом одновимірного масиву рядків.

Основними операціями, які найбільше часто доводиться програмувати для рядків є:

- операції введення/виведення;

- визначення кількості символів у рядку;

- копіювання символів з одного рядка в інший;

- конкатенація, тобто об’єднання двох рядків в один;

- пошук заданого символу в рядку;

- пошук входження рядка в рядок;

- лексикографічне порівняння рядків.

Введення/виведення рядків

Для програмування операцій консольного введення/виведення застосовуються функції scanf і printf з форматом %s . Частина програми, що наведена нижче, вводить рядок T із клавіатури і далі виводить його на екран для контролю:

char T[100];

scanf("%s",T);

printf("%s",T);

Якщо Ви вже зустрічалися з функцією scanf, зверніть увагу на те, що у другому рядку не треба писати scanf("%s",&T), бо T є ім’ям масиву і водночас покажчиком на нього, звідси значення T саме і є адресою області пам’яті, у яку виконується введення інформації за допомогою функції scanf.

Для виведення значень рядкових змінних на екран можна також використати стандартну процедуру консольного виведення рядка puts:

puts(T);

Для програмування операцій з рядками можна використати функції з бібліотечного модуля string.h . Нижче наведено короткий опис тих функцій із цієї бібліотеки, які застосовуються найбільш часто.