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

11.1.8Стандартні функції для роботи з рядками символів

Стандартні бібліотеки мови С надають користувачеві можливість використовувати ряд функцій для опрацювання символьних рядків, а також функцій перетворень рядків символів у числа та зворотних перетворень. Ці функції докладно описані у підручнику [4], стр.152-154. Ознайомтесь із цими функціями і перевірте їх роботу. Майте на увазі, у підручнику є помилка, яку не важко помітити.

У звіті наведіть результати тестування деяких з цих функцій (не менше 2 з кожної групи.)

11.1.9Масиви покажчиків на рядки символів

У практиці програмування зустрічаються задачі в яких доводиться працювати з масивами рядків символів. Прикладом такого масиву може бути список студентів групи. Особливість таких масивів полягає у тому, що майже кожний елемент має свою довжину. Якщо оголошувати такий масив як двовимірний (матриця символів), то ширину такої матриці доведеться вибирати виходячи з найдовшого прізвища. Це призведе до нераціонального використання пам’яті.

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

//Створення масиву покажчиків на рядки

const char *arrPtrToFio[]={"Жванецький М.В.","Вовк А.П.","Карась П.С."};

//Сортування покажчиків методом вибору

for(int i=0; i<2;i++){

for(int j=1;j<3;j++){

//Порівняння прізвищ

if(strcmp(arrPtrToFio[i], arrPtrToFio[j])>0){

// Обмін покажчиків у масиві

const char *p=arrPtrToFio[i];

arrPtrToFio[i]=arrPtrToFio[j];

arrPtrToFio[j]=p;

}

}

}

//Виведення на консоль

for(int i=0;i<3;i++){

cout<<arrPtrToFio[i]<<endl;

}

Зверніть увагу, під час сортування обмін відбуваеться тільки між покажчиками, а рядки залишаються на місцях.

Ілюстрації до прикладу можна знайти у підручнику [4], стр.159-160.

11.1.10Покажчики на структури Завдання для самостійної роботи

В лабораторній роботі слід створити проект, відповідно до вимог варіантів з таблиць 7.1, 7.2. Номер варіанту вибирайте відповідно до останньої цифри номера залікової книжки.

Таблиця 7.1 передбачає реалізацію таких функцій у проекті:

  • створення масиву заданим способом;

  • визначення якоїсь числової характеристики для створеного масиву;

  • формування нового масиву на основі створеного.

Таблиця 7.1 – Завдання на роботу з масивами

Створення масиву

Числові характеристики

Формування нового масиву

1

2

3

4

0

Random

Розмах елементів

(max-min)

Видалити парні елементи із масиву

1

Із рядка символів

Різниця між сумами елементів у парних та непарних позиціях

Оборот масиву

2

По елементам

Кількість елементів, що перевищують середнє геометричне

Вставка елемента в задану позицію

3

Random

Різниця між середніми арифметичним та геометричним

Видалення заданого елементу із масиву

4

Із рядка символів

Різниця між сумами парних та непарних елементів

Задане число циклічних зсувів ліворуч

5

По елементам

Середнє відхилення елементів масиву

Вставка суми елементів у початок масиву

Продовження таблиці 7.1

1

2

3

4

6

Random

Середні арифметичні значення парних та непарних елементів

Задане число циклічних зсувів праворуч

7

Із рядка символів

Дисперсія елементів масиву

Вставка середнього арифметичного значення в середину масиву

8

По елементам

Кількість елементів, що перевищують середнє значення

Пере форматувати масив, спочатку непарні, потім парні

9

Із рядка символів

Сума елементів, що перевищують середнє значення

Додати мінімальне значення у початок масиву, а максимальне к кінець

Таблиця 7.2 передбачає реалізацію у проекті функції для обробки рядка (масиву символів).

Таблиця 7.4 – Завдання на обробку масивів символів

Завдання

0

Отримати задану кількість символів, від початку рядка

1

Отримати задану кількість символів, від кінця рядка

2

Перетворити рядок цифрових символів у число

3

Перетворити ціле число без знаку у прядок символів

4

Вилучити початкові пробіли з рядка символів

5

Вилучити хвостові пробіли з рядка символів

6

Отримати задану кількість символів, починаючи від заданої позиції

7

Видалити задану кількість символів, починаючи від заданої позиції

8

Вставити задану послідовність символів, починаючи від заданої позиції

9

Отримати позицію заданої послідовності символів