Читайте также: |
|
Зміст роботи: програмування з використанням функцій обробки символів та символьних рядків.
Рядкова змінна являється масивом символів кода ASCII, вона має тип char [] або char*, в кінці кожного рядка компілятор розміщує символ ‘\0’, який вказує на кінець даного рядка. Для розміщення у рядку спеціальних символьних констант, перед ними пишеться символ ' \'.
Спеціальні (управляючі) символьні константи
Перейти у новий рядок | LF | ‘\n’ |
Горизонтальна табуляція | HT | ‘\t’ |
Вертикальна табуляція | VT | ‘\v’ |
Повернення на шаг | BS | ‘\b’ |
Пeрейти у початок рядка | CR | ‘\r’ |
Перевод формату | FF | ‘\f’ |
Зворотня коса лінія | \ | ‘\\’ |
Апостроф | ‘ | ‘\’’ |
Кавички | “ | ‘\”’ |
Нульовий символ(пусто) | NULL | ‘\0’ |
Для обробки рядків передбачено використання спеціальних функцій. Щоб користуватися ними, необхідно включити в програму файл string.h за допомогою директиви
#include < string.h >
Наведемо приклади деяких функцій обробки рядків.
strcat – зклеїти два рядки.
Визначення: char *strcat (char *s1, char *s2);
strncat – зклеїти дві строчки, причому з другої копіювати не більше ніж n символів.
Визначення: char *strncat (char *s1, char *s2, int n);
strcmp – лексикографічне порівняння рядків.
Визначення: int strcmp (char *s1, char *s2);
strncmp - порівняти перші n символів двох рядків.
Визначення: int strncmp (char *s1, char *s2, int n);
strcpy – копіювання рядка.
Визначення: char * strcpy (char *s1, char *s2);
strncpy – копіювати не більше ніж n символів рядка.
Визначення: char * strncpy (char *s1, char *s2, int n);
strlen – визначити довжину рядка.
Визначення: int strlen (char *s);
strchr - знайти перше входження символу.
Визначення: char *strcat (char * s, int c)
strrchr - знайти останнє входження символу.
Визначення: char *strrchr (char *s, int c)
Варіант 1.
1. Видаліть символи, розміщені між дужками { та }, /* та */ і самі дужки. Знайдіть найдовше слово тексту.
2. Знайдіть символи, які зустрічаються в тексті лише один раз.
Варіант 2.
1. Виведіть літери, на які починаються слова в порядку спадання частоти їх використання.
2. Перевірте, чи являється деяке підслово частиною заданого слова(наприклад, якщо підсловом є Рина, то для слів Арина, Вікторина, Катерина, Ірина, Карина, відповідь буде -ДА, а для слів Назарій, Дмитро, Григорій – НІ.
Варіант 3.
1. Скільки разів в деякому тексті зустрічаються задані слова. Виведіть слова, довжина яких більше 5 але не більше 12 літер.
2. В деякому тексті визначне кількість заперечувальних часток не і ні.
Варіант 4.
1. Діти, кодуючи записки, інвертують слова. Складіть програму кодування та декодування деяких повідомлень.
2. Перевірте чи можна з літер, що входять в слово Х, скласти слово У(наприклад, якщо Х це Ярослава, а У – Слава). Літери можна міняти місцями, але кожну можна використати лише один раз.
Варіант 5.
1. В тексті підрахуйте кількість речень, слів, всіх символів (крім символу пропуску), подвійних символів, тире та ком.
2. Для заданого цілого і „ заданого рядка” надрукуйте фразу В рядку „заданий рядок” k символів, з відповідним k закінченням слова символів.
Варіант 6.
1. В тексті слова можуть бути відокремлені одне від одного більш ніж одним пропуском. Відредагуйте текст, відокремлюючи слова одним символом пропуску, а речення двома.
2. Складіть програму, яка формує ідентифікатори, викреслюючи голосні із заданих слів.
Варіант 7.
1. Визначте з якої літери частіше починаються слова в заданому тексті.
2. Перевірте, чи є в деякому слові сполучення літер, які повторюються.
Варіант 8.
1. Знайдіть в тексті числа та запишіть їх в вектор цілого типу.
2. В словах заданого тексту знайдіть і підрахуйте префікси над-, від-, пере-, під-.
Варіант 9.
1. Скільки разів в тексті зустрічаються слова не, але, в, у, з, і, та. Для кожного речення вкажіть долі приголосних. В якому реченні вона максимальна.
2. Із списку імен відберіть паліндрономічні імена (наприклад Ада, Анна, Аза, Алла).
Варіант 10.
1. Знищіть в тексті символи подвійних кавичок. Підрахуйте кількість слів з закінченням –ая, -ом, -ой, -их, -їх.
2. Напишіть програму посимвольгого перетворення „кирилиці” в „латиницю”(наприклад Інга-Inga, Ярослав-Yaroslav).
Варіант 11.
1. Одиночний символ зірочка „* ” замініть пропуском, а подвійні, потрійні,... – двома пропусками. Підрахуйте кількість слів с подвійними літерами.
2. Введіть деякий текст і виведіть його в коді Морзе.
Сим-вол | Знак Морзе | Сим-вол | Знак Морзе | Сим-вол | Знак Морзе | Сим-вол | Знак Морзе |
А | .- | Н | -. | Ы | -.-- | ----. | |
Б | -... | О | --- | ЬЪ | -..- | ----- | |
В | .-- | П | .--. | Э | ..-.. | . | ...... |
Г | --. | Р | .-. | Ю | ..-- | , | .-.-.- |
Д | -.. | С | ... | Я | .-.- | ; | -.-.- |
ЕЁ | . | Т | - | .---- | : | ---... | |
Ж | ...- | У | ..- | ..--- | ? | ..--.. | |
З | --.. | Ф | ..-. | ...-- | № | -..-. | |
И | .. | Х | .... | ....- | ‘ | .----. | |
Й | .--- | Ц | -.-. | ..... | () | -.--.- | |
К | -.-. | Ч | ---. | -.... | ! | --..-- | |
Л | .-.. | Ш | ---- | --... | - | ....- | |
М | -- | Щ | --.- | ---.. | / | -..-. |
Варіант 12.
1. В деякому тексті символи «...» замініть крапкою. Підрахуйте кількість слів в кожному реченні.
2. Напишіть програму, яка б вводила та виводила цілі числа в шістнадцятирічній системі, та переводила їх в десяткову.
Варіант 13.
1. Знайдіть в тексті найкоротше, найдовше, та слово середньої довжини.
2. Задані n чисел в експотенційній формі (в науковій нотації). Після кожної пятірки цифр вставте в запис числа пропуск.
Варіант 14.
1. Перетворіть текст виду
Сидір Петрович Іванов. Микола Миколайович Ле....
до вигляду
Іванов С. П.
Ле М. М.
...
2. Напишіть програму перетворення цілих чисел в рядок (наприклад, -273 це мінус двісті сімдесят три).
Варіант 15.
1. Визначне кількість симетричних слів. Знайдіть найдовше симетричне слово.
2. Задані n чисел в фіксованій формі. Після кожної трійки цифр вставте в послідовності цифр пропуск, починаючи від крапки і рухаючись вліво та вправо.
Контрольні запитання до лабораторної роботи №6
1. Як задати рядкову змінну?
2. Як зберігаються рядкові змінні в пам’яті ЕОМ?
3. Перерахуйте основні функції обробки рядкових змінних.
4. У чому різниця між функціями strcpy та strncpy?
Дата добавления: 2015-08-20; просмотров: 120 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лабораторна робота №5 | | | Лабораторна робота №7 |