Лабораторна робота № 7. Символьна інформація та рядки

Рекомендації до виконання лабораторної роботи

ü Пам’ятайте, що рядок - це і масив, і вказівник на перший його елемент (char str[80], char * S1). Для звернення до елементів рядка достатньо записати ім’я символьного масиву і в квадратних дужках індекс елементу (str[2], S1[i]), або до імені масиву додавати константу (відповідний індекс), і застосовувати операцію розіменування для доступу до потрібного елементу (*(str+2), *(S1+i)). При роботі зі словами в рядку деколи зручно використовувати масив вказівників на ці слова.

ü Для пошуку у рядку конкретних символів, наприклад, знаків пунктуації, цифр, великих або маленьких літер, пробілів тощо зручно користуватися стандартними функціями для роботи з символами, описаними у файлі-заголовку <ctype.h>.

ü Ознакою кінця рядка є нульовий символ “\0”, який зручно використовувати при проходженні по рядку в пошуку потрібних символів.

ü Оскільки рядки не належать до змінних стандартного типу мови С++, для роботи з ними існують спеціальні функції, опис яких розміщений у заголовочному файлі <string.h>. Результати застосування таких функцій розглянемо на прикладі:

ü char College []=”Computer Sciences”, F[]=”Faculty of ”;

char * p, * r=””;

int n;

Застосування функцій Результат
n= strlen(College); n=17
r=strcat( F, College); r=”Faculty of Computer Sciences”
r=strncat( F, College, 8); r=”Faculty of Computer ”
strcpy( r, College); r= “Computer Sciences”
strncpy( r, College, 8); r= “Computer”
p=strchr(College, ‘S’); p=”Sciences”
p=strrchr(College, ‘e’); p=”es”
p=strstr(College, “put”); p=”puter Sciences”
p=strupr(“Happy New Year”); p=” HAPPY NEW YEAR”
p=strlwr(“Happy New Year”); p=”happy new year”
p=strrev(“retupmoc”); p=”computer”
n=strcmp(“Funny”,”funny”); n=-32
n=strcmp(“funny”, “Funny”); n=32
n=strcmp(“Funny”, “Funny”) n=0
n=stricmp(“funny”, “Funny”); n=0 (не розрізняються малі і великі літери)

ü Слово – це послідовність алфавітно-цифрових символів, перед або (та) після яких слідує або знак пунктуації, або розділювач, або ознака кінця рядка.

Слово={початок рядка | знак пунктуації | пропуск } символи, що складають слово, {кінець рядка| знак пунктуації | розділювач }

ü Шукане слово може входити до складу інших слів (“сон”: фасон, соната, персона).

ü При зчитування тексту з файлу не забувайте перевіряти правильність його відкриття, підключайте необхідні заголовочні файли функцій зі стандартних бібліотек.

ü Практикуйте проміжний контрольний друк на різних стадіях виконання програми.

ü При виведенні результату додавайте текстові пояснення до того, що виводиться на екран. Бажано виводити як вихідний, так і новий тексти задля порівняння.

ü Довжина рядка, який зчитується з текстового файлу, не перевищує 80 символів, між словами пропуски і допускаються знаки пунктуації, натиснення „enter” – ознака кінця файлу.

ü Програма повинна передбачати будь-які варіанти текстових файлів.

Варіанти індивідуальних завдань

Варіант 7.1

Напишіть програму, яка визначає:

а) скільки пропусків є в цьому тексті (3 бали);

б) чи зустрічається в тексті слово, що вводиться з клавіатури (+1 бал);

в) виводить слова рядка у інший текстовий файл в зворотному порядку (+1 бал).

Варіант 7.2

Написати програму, яка визначає:

а) скільки знаків пунктуації є в цьому тексті (3 бали);

б) чи зустрічається в тексті слова, що починаються з цифр (+1 бал);

в) виводить рядок у інший текстовий файл але без слів, що починаються з цифр (+1 бал).

Варіант 7.3

Напишіть програму, яка визначає:

а) скільки великих літер є в цьому тексті (3 бали);

б) замінити пропуски у тексті на знак ’+’ (+1 бал);

в) виводить рядок у інший текстовий файл, міняючи місцями два сусідні слова (+1 бал).

Варіант 7.4

Напишіть програму, яка визначає:

а) скільки маленьких літер є в цьому тексті (3 бали);

б) слова, до складу яких входить слово, введене з клавіатури (+1 бал);

в) виводить рядок у інший текстовий файл, змінивши на протилежний, порядок букв в кожному слові (Наприклад: „наприклад” – „далкирпан”) (+1 бал).

Варіант 7.5

Напишіть програму, яка визначає:

а) скільки знаків пунктуації є в цьому тексті (3 бали);

б) скільки разів зустрічається в тексті слово, що вводиться з клавіатури (+1 бал);

в) виводить рядок інший текстовий файл без слова, що вводиться з клавіатури (+1 бал).

Варіант 7.6

Напишіть програму, яка визначає:

а) скільки цифр є в цьому тексті (3 бали);

б) чи зустрічається в тексті окремо двозначне число, що вводиться з клавіатури (+1 бал);

в) виводить слова рядка, що знаходяться до та після цього числа, у інший текстовий файл (+1 бал).

Варіант 7.7

Напишіть програму, яка визначає:

а) скільки пропусків і символів пунктуації є в цьому тексті (3 бали);

б) чи зустрічається в тексті трьохзначне число, що вводиться з клавіатури (+1 бал);

в) виводить рядок у інший текстовий файл, записуючи цифри від 0 до 9 словами, тобто „нуль”, „один” тощо (+1 бал).

Варіант 7.8

Напишіть програму, яка визначає:

а) скільки пропусків і цифр є в цьому тексті (3 бали);

б) чи зустрічається у тексті підрядок, введений з клавіатури (+1 бал);

в) виводить рядок, у якому найбільше слів-поліндромів, у інший текстовий файл (+1 бал).

Варіант 7.9

Напишіть програму, яка визначає:

а) скільки великих букв є в цьому тексті і замінює їх на маленькі (3 бали);

б) найдовше слово у тексті (+1 бал);

в) виводить рядок, у якому немає однакових слів, в інший текстовий файл (+1 бал).

Варіант 7.10

Напишіть програму, яка визначає:

а) скільки маленьких букв є в цьому тексті і замінює їх на великі (3 бали);

б) слова, які не містять деякої, обраної Вами, букви (+1 бал);

в) у інший текстовий файл виводить кожне слово речення з нового рядка (+1 бал).

Варіант 7.11

Напишіть програму, яка визначає:

а) скільки пропусків і ком є в цьому тексті (3 бали);

б) найкоротше слово у тексті (+1 бал);

в) у інший текстовий файл виводить рядок, у якому найбільше однакових слів (+1 бал).

Варіант 7.12

Напишіть програму, яка визначає:

а) чи є введений з клавіатури рядок довшим за текстовий приклад (3 бали);

б) слова, які містять введену Вами букву (+1 бал);

в) у інший текстовий файл виводить рядок, додавши до нього його дзеркальну копію (+1 бал).

Варіант 7.13

Напишіть програму, яка визначає:

а) скільки цифр і пропусків є в цьому тексті (3 бали);

б) слова, першими символами яких є цифри від 0 до 5 (+1 бал);

в) у інший текстовий файл виводить рядок, з якого вилучено слова, знайдені у попередньому пункті (+1 бал).

Варіант 7.14

Напишіть програму, яка визначає:

а) скільки разів у тексті зустрічається буква, що вводиться з клавіатури

(3 бали);

б) слова-поліндроми (+1 бал);

в) у інший текстовий файл виводить рядок, до якого додається цей самий рядок, слова у якому записані в зворотному порядку (+1 бал).

Варіант 7.15

Напишіть програму, яка визначає:

а) скільки разів задана цифра зустрічається в цьому тексті (3 бали);

б) слова, довші за введене слово (+1 бал);

в) у інший текстовий файл виводить рядок, з якого вилучено слова, знайдені у попередньому пункті (+1 бал).

Варіант 7.16

Напишіть програму, яка визначає:

а) скільки великих літер зустрічається в цьому тексті (3 бали);

б) слова, коротші за введене слово (+1 бал);

в) у інший текстовий файл виводить рядок, в якому у словах, знайдених у попередньому пункті, подвоюється остання літера (+1 бал).

Варіант 7.17

Напишіть програму, яка визначає:

а) скільки разів задана літера зустрічається в цьому тексті (3 бали);

б) найдовше та найкоротше слова у рядку (+1 бал);

в) у інший текстовий файл виводить рядок, у якому всі пробіли замінені на три крапки (+1 бал).

Варіант 7.18

Напишіть програму, яка визначає:

а) скільки разів у цьому тексті зустрічаються парні цифри (3 бали);

б) слова, які не містять більше трьох голосних (+1 бал);

в) у інший текстовий файл виводить рядок, з якого вилучено перше і останнє слова (+1 бал).

Варіант 7.19

Напишіть програму, яка визначає:

а) скільки разів у цьому тексті зустрічаються цифри, кратні трьом (3 бали);

б) слова, які співпадають з першим словом (+1 бал);

в) у інший текстовий файл виводить рядок, у якому спочатку друкуються всі літери, а потім всі цифри без зміни порядку їх розташування у вихідному рядку (+1 бал).

Варіант 7.20

Напишіть програму, яка визначає:

а) скільки речень є в цьому тексті (3 бали);

б) слова, у яких підряд стоять дві однакові літери (book, pass, express, Гаага, масса) (1 бал);

в) у інший текстовий файл виводить рядок, який містить лише цитати з вихідного тексту, тобто вислови у лапках (+1 бал).

Варіант 7.21

Напишіть програму, яка визначає:

а) скільки цифр і літер зустрічається в цьому тексті (3 бали);

б) слова, які починаються з голосних (+1 бал);

в) у інший текстовий файл виводить рядок, у якому всі літери відсортовані за зростанням, а дублікати вилучаються (+1 бал).

Варіант 7.22

Напишіть програму, яка:

а) замінює всі знаки з кодами менше 060 на позначку ’*’ (3 бали);

б) знаходить власні назви (+1 бал);

в) у інший текстовий файл виводить рядок, у якому всі символи замінено на їх ASCII-коди (+1 бал).

Варіант 7.23

Напишіть програму, яка:

а) замінює кожен пробіл у цьому тексті на його номер ( наприклад, “На1панщині2пшеницю3жала.”) (3 бали);

б) знаходить кількість слів, які закінчуються на “ing” (+1 бал);

в) у інший текстовий файл виводить текст, який містить рядки, які починаються з тире, перед яким можуть знаходитися лише символи пропуску (+1 бал).

Варіант 7.24

Напишіть програму, яка визначає:

а) скільки пар лапок є в цьому тексті (3 бали);

б) слова, які не можуть бути ідентифікаторами (починаються з цифри) (+ 1 бал);

в) у інший текстовий файл виводить рядок, у якому спочатку розміщуються слова, що складаються лише з літер, далі ті, що містять крім літер ще й цифри, а в кінці - лише числа (+1 бал).

Варіант 7.25

Напишіть програму, яка визначає:

а) скільки пар дужок є в цьому тексті (3 бали);

б) слова, у яких немає повторень літер (+1 бал);

в) у інший текстовий файл виводить рядок, який містить слова вихідного тексту, розташовані за зростанням їх довжини (+1 бал).

Варіант 7.26

Напишіть програму, яка визначає:

а) кількість позначок підкреслення в цьому тексті (3 бали);

б) слова, за якими не стоїть кома (+1 бал);

в) у інший текстовий файл виводить текст, у якому слова однакової довжини замінено на введене з клавіатури слово (+1 бал).

Варіант 7.27

Напишіть програму, яка визначає:

а) кількість тире в цьому тексті (3 бали);

б) слова, за якими стоїть кома або крапка (+1 бал);

в) у інший текстовий файл виводить закодований текст, тобто для позначення кожної літери і цифри оберіть код за власним бажанням і організуйте заміну (+1 бал).

Варіант 7.28

Напишіть програму, яка визначає:

а) кількість позначок арифметичних операцій у цьому тексті (3 бали);

б) слова, які містять апостроф (+1 бал);

в) у інший текстовий файл виводить текст, у якому всі літери і цифри замінені на їх попередників (тобто 1 на 0, b на a, a на z, 0 на 9 тощо) (+1 бал).

Варіант 7.29

Напишіть програму, яка визначає:

а) кількість позначок логічних операцій в цьому тексті (3 бали);

б) слова, довжина яких не перевищує деякої заданої величини (+1 бал);

в) у інший текстовий файл виводить текст, у якому всі слова пронумеровані (+1 бал).

Варіант 7.30

Напишіть програму, яка визначає:

а) кількість позначок інкременту і декременту в цьому тексті (3 бали);

б) слова, довжина яких більша за задану величину (+1 бал);

в) у інший текстовий файл виводить рядок, який містить лише слова різної довжини (решта слів видаляється) (+1 бал).

Наши рекомендации