Частина тексту файла (без зображень, графіків і формул):
Міністерство освіти та науки України
НУ “Львівська політехніка”
Лабораторна робота №4
“Опрацювання рядків символів. Динамічний розподіл памяті”
Львів 2005
Назва роботи: Опрацювання рядків символів. Динамічний розподіл пам’яті.
Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками опрацювання символьних рядків. Засвоїти методику роботи з символьними рядками за допомогою стандартних функцій бібліотеки Сі.
Завдання на лабораторну роботу.
Ввести зі стандартного пристрою вводу речення. Вибрати з речення слова, що містять літеру ’x’, де ’x’ - довільний алфавітний символ, та вивести їх на стандартний пристрій виводу.
Текст програми:
#include <stdio.h> //підключення заготовочних файлів
#include <conio.h>
#include <alloc.h>
#include <string.h>
int main() //головна функція програми
{
char *p,*s,*t; //необхідні типи даних
char ch,ind;
int i=1;
clrscr(); //очистка екрану
printf("Enter a character:");
ind=getch(); //зчитування символу
putchar(ind); //вивід символу
printf("\nEnter a string:\n");
s=(char*)malloc(1); //ініціалізація вказівників
t=(char*)malloc(2);
t[1]=0; //задання кінців рядків
s[0]=0;
while((ch=getch())!=13){ //цикл, який зчитує символи до символа #13
putchar(ch);
t[0]=ch;
s=(char*)realloc(s,++i);
s=strcat(s,t); //занесення символа в кінець рядка
}
printf("\nAll words contained \"%c\" are:\n",ind);
p = strtok(s, " ");
//вивід першого найденого слова
if (p&&strrchr(p,ind)) printf("%s\n", p);
//цикл, який виводить решту слів
while(p){
p = strtok(NULL, " ");
if (p&&strrchr(p,ind)) printf("%s\n", p);
}
return 0;
}
Дана програма потребує ввести шуканий символ та рядок слів. В результаті роботи на екран виводяться всі слова, які містять заданий символ.
Результат роботи програми:
Enter a character: x
Enter a string:
asdf zxcv bnm fgxc
All words contained “x” are:
zxcv fgxc
Алгоритм програми
Висновок: Ознайомились з функціями для роботи з рядками з стандартної бібліотеки. Випробували деякі з них на практиці. Засвоїли методи опрацювання текстової інформації.