Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МЕТОД_ЛАБ.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.08 Mб
Скачать

Лабораторна робота №8. Обробка текстів.

Мета роботи:

  1. Оволодіти правилами опису рядкового типу даних.

  2. Вивчити операції та стандартні функції і процедури, які застосовуються до рядків.

  3. Здобути навички роботи з рядками символів.

Теоретичні відомості.(Pascal)

Рядок – це послідовність символів. При використанні у виразах рядок береться в лапки. Довжина рядка може змінюватися в межах від 0 до 255.

Рядок можна описати таким чином:

var <ідентифікатор,…>: string [максимальна довжина рядка];

Приклад: var St, St1, St2: string[50];

Доступ до кожного окремого символу рядка відбувається з допомогою його номера (індексу), наприклад, St[3], St[i], St[i+j].

Над рядками можна виконувати операцію конкатенації (+), яка зчеплює рядки в один рядок, і операції відношення (=, <>, >, >=, <, <=). Порівняння рядків відбувається зліва направо до першого символу, який не співпадає. Результатом порівняння є TRUE або FALSE.

Процедури для роботи з рядками

Delete (Str, Pos, N )—вилучення N символів у рядку Str, починаючи з позиції Pos.

Insert (Str1, Str2, Pos) – вставка рядка Str1 у рядок Str2, починаючи з позиції Pos.

Str (IBR, Str) – перетворення числового значення IBR у рядок Str.

Val (Str, IBR, Code) – перетворення рядка Str у величину цілого або дійсного типу IBR (Code <>0, якщо виявилась помилка).

Функції для роботи з рядками.

Copy (Str, Pos, N) – виділяє із рядка Str підрядок довжиною N символів, починаючи з позиції Pos.

Concat (Str1, Str2, …,Str N) – виконує зчеплення в один рядок рядків Str1, Str2, …,Str N.

Lenght (Str) – обчислює довжину рядка Str.

Pos (Str1, str2) – виявляє перше входження підрядка Str1 у рядок Str2. Результат дорівнює номеру першої позиції входження (або 0, якщо підрядок Str1 не знайдено

UpCase (Ch) – перетворює малу літеру у велику. Параметр і результат мають символьний тип.

Теоретичні відомості.(с) Масиви символів . Рядки.

В мові C немає типу string ( як у Pascal ). Для роботи з рядками використовують одновимірні масиви символів типу char. У мові С символьний рядок – це одновимірний масив типу char, який закінчується нульовим байтом ’\0’. Тому, якщо рядок містить n символів, то відповідний масив повинен мати n +1 елемент .

Є два способи ввести рядок з клавіатури

  • Використовувати scanf( ) зі специфікацією %s. Треба пам’ятати, що scanf вводить символи до першого пробільного символу .

  • Скористатись функцією gets( ) , яка дозволяє вводити рядки , що містять пропуски. Ввід закінчується натисканням клавіші Enter. Обидві функції автоматично ставлять в кінці рядка нульовий байт. Вивід рядків здійснюється функціями printf() або puts(). Обидві функції виводять вмістиме масиву до нульового байта. Функція puts() додає в кінець рядка символ переходу на новий рядок.

Функції для роботи з рядками.

Для роботи з рядками існує спеціальна бібліотека опис якої знаходиться в файлі String.h.

Найчастійше використовуються функції:

Strcpy(), strcat(), strlen(), strcmp().

Виклик функції Strcpy() має вигляд Strcpy(S1,S2);

Використовується для копіювання рядка S2 в рядок S1. Рядок S1 повинен бути достатньо великим, щоб у нього помістився рядок S2. Якщо місця мало, помилка не видається, але це може привести до псування інших даних або програми.

Виклик функції StrCat() має вигляд:

StrCat(S1,S2);

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

Наприклад:

#include <Stdio.h>

#include <String.h>

main()

{ char s1[20], s2[20];

strcpy(s1,”hello,”);

strcpy(s2 ,” Привіт ”);

puts(s1);

puts(s2);

strcat(s1,s2);

puts(s1);

puts(s2);

}

Виклик функції strcmp( ) має вигляд :

Strcmp(s1,s2)

Функція порівнює рядки s1 i s2 i повертає значення 0, якщо рядки рівні (містять одинакові символи ). Функція повертає додатнє значення , якщо s1 більше від s2 і від’ємне , якщо s1 менше від s2.

Виклик функції strlen( ) має вигляд :

Strlen( s )

Функція повертає довжину рядка s (нульовий байт не враховується )

Виклик strlen( “ hello “ ) поверне значення 5.