Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab26.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
239.1 Кб
Скачать

Масиви символьних рядків

Рядки символів можна об'єднувати в масиви довільної розмірності. На практиці найбільш поширена робота з двомірними масивами символів (одномірними масивами рядків символів).

В залежності від опису рядки символів зберігаються в неперервній області пам'яті як двомірні символьні ма­сиви або в різних областях пам'яті у вигляді окремих рядків. Перший спосіб опису:

charmasstr[4][10]={"green", "red", "white", "blue"};

визначає прямокутний масив символів. Всі чотири рядки матимуть однакову довжину. Короткі рядки доповню­ються справа символами '\0' до вказаної довжини (до 10 символів).

Опускаючи другий індекс, будемо мати адреси кожного з рядків, наприклад, запис masstr[2] визначає вказівник на рядок "white", а запис *(masstr[2]+j) визначає j-й символ цього рядка (j = 0,...,9).

Для доступу до символів можна використовувати також спосіб, характерний для числових масивів, наприклад, запис masstr[0][1] визначає символ 'r' рядка "green".

Другий спосіб опису:

char *prtstr[4]={"green", "red", "white", "blue"};

визначає масив із 4-х вказівників на рядки різної довжини. Значення рядків, можливо, будуть зберігатися не підряд, а в різних областях пам'яті.

Для доступу до j-го символу і-го рядка можна скористатися наступним виразом; *(ptrstr[i]+j).

Організація стандартного виводу та вводу символьних даних. Форматний вивід даних

Здійснюється за допомогою функції printf, яка має змінну кількість аргументів. Прототип функції приведений вище у таблиці.

Звертання до функції:

printf ("форматний рядок", арг1,арг2,...);

Форматний (керуючий) рядок використовується для того, щоб задати кількість та типи аргументів і може вклю­чати в себе:

  1. звичайні символи, які виводяться на екран дисплея;

  2. специфікації перетворення даних, кожна з яких викликає на екран значення наступного аргумента із списку,

  3. керуючі символьні константи:

    • \а - викликає звуковий сигнал;

    • \n - перехід на новий рядок;

    • \b - повернення на позицію вліво;

    • \r - перехід на початок біжучого рядка;

    • \f - перехід на нову сторінку;

    • \t - горизонтальна табуляція;

    • \v - вертикальна табуляція;

    • \ddd - вісімковий код символу;

    • \’ - апостроф;

    • \xddd - шістнадцятковий код символу;

    • \" - подвійні лапки;

    • \0 - нульовий символ (пусто);

    • \\ - зворотня коса риска;

Специфікація перетворення має наступний формат:

%[вирівнювання][ширина][точність]символ перетворення

Квадратні дужки не є символами специфікації, а лише вказують, що дане поле може бути опущене. Спе­цифікація перетворення починається знаком % і закінчується символом перетворення (форматом), між якими мо­жуть бути:

  1. знак "-" (мінус), який показує, що перетворений параметр повинен бути вирівняний вліво у своєму полі (по змовчуванню вирівнюється вправо);

  2. рядок цифр - мінімальна ширина поля. Якщо значеня змінної перевищує ширину поля, то виводиться стільки символів, скільки потрібно;

  3. крапка;

Рядок цифр - максимальне число символів, які необхідно вивести для типу char. Аргументами функції printf можуть бути змінні, константи, вирази, виклики функцій. Значення аргументів повинні відповідати заданій специфікації.

Вивід символів

Специфікація перетворення:

%[-][ширина]с

Вивід символів рядка здійснюється доти, поки не зустрінеться символ '\0', або до вказаної точності. Якщо дов­жина рядка більша від заданої точності, то залишок рядка відкидається.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]