Міністерство освіти і науки України
НУ „Львівська політехніка”
Кафедра ЕОМ
ЗВІТ
Про виконання лабораторної роботи №4
Опрацювання рядків символів. Динамічний розподіл пам’яті.
Габа В.Р.
(Студент)
ІКТА КІ-27
(Група)
Грицуляк Т.О.
(Керівник лаб. занятть)
Львів 2005
Лабораторна робота № 4
Назва роботи: Опрацювання рядків символів. Динамічний розподіл пам’яті.
Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками опрацювання символьних рядків. Засвоїти методику роботи з символьними рядками за допомогою стандартних функцій бібліотеки Сі.
Завдання на лабораторну роботу
Розробити програмне забезпечення для опрацювання символьних рядків відповідно до заданого варіанту.
Під словом, слід розуміти послідовність алфавітних символів, що належать множині {’А’, ’Б’, …, ’Я’, ’а’, ’б’, …, ’я’, ’A’, ’B’, …, ’Z’, ’a’, ’b’, …, ’z’}. Речення, це послідовність слів розділених пропуском (пробілом). Кожне слово чи речення повинно представлятися в пам’яті машини окремою символьною змінною. При реалізації програм, максимально використати стандартні (бібліотечні) функції обробки символьних рядків. Ці функції описані в заголовковому файлі string.h, а їх імена починаються з префіксу “str…”.
Програма повинна обробляти слова та речення довільної довжини. Для цього використати механізм динамічного розподілу пам’яті. При реалізації механізму динамічного розподілу пам’яті використати стандартні Сі – функції malloc(), calloc() realloc() та free().
При вирішенні задач забезпечити дружній інтерфейс з користувачем.
Текст програми;
# include <stdio.h>
# include <string.h>
# include <stdlib.h>
# include <alloc.h>
# include <conio.h>
int main(void)
{
int i,word_N;
char sword[5],word[255];
char* pword,ptr;
clrscr();
printf("Enter search word...");
scanf("%s",sword);
printf("Enter number of word...");
scanf("%d",&word_N);
if ((pword=malloc(word_N*sizeof(char[10])))==NULL)
{
printf("Not enought memory!!!");
return 1;
}
else
for(i=0;i<word_N;i++)
{
scanf("%s",(pword+i));
if ((strstr((pword+i),sword))==NULL)
strcat(word,(pword+i));
strcat(word," ");
}
free(pword);
printf("Line is...%s",word);
return 0;
}
Висновок: На даній лабораторній роботі я закріпив теоретичні знання та оволодів практичними навиками опрацювання символьних рядків. Засвоїв методику роботи з символьними рядками за допомогою стандартних функцій бібліотеки Сі.