Читайте также: |
|
Тема. Складання програм для опрацювання символьної інформації
Мета:Одержання навичок обробки символьної інформації і використання бібліотечних функцій для роботи з символьними рядками..
1 Короткі теоретичні відомості
Робота з символьними змінними. Змінні типу char повинні бути описані до їх використання. При описі їх можна задавати.
char a, b, c; char d=’x’; при описі d=’x’; оператор присвоєння
Можна створювати іменовані символічні константи
const char a=’z’; Використовуються одинарні лапки
Приклад програми для виводу змінної c1 в виді числа і в виді символа
printf(«%с», с1); як символ printf(«%d», с1); як число.
Масиви символів (рядки). Опис. Рядки, які є послідовністю символів, задаються масивами символів. Синтаксис опису:char string[10];
В цьому масиві можна зберігати дев’ять символів можна зберігати і менше символів. Чому в асиві, чкий містить 10 елементів, можна зберігати 9 символів.? В мові С рядки визначаються як послідовність символів, що закінчується нульовим символом. Нульовий символ - це спеціальний символ, який позначається \0. Хоч він записується в виді двох знаків (оберненої риски і 0) компілятор сприймає його як один символ, що відповідає коду ASCII ‘0’. Це є спеціальний символ мови С. В чому ж різниця між рядками і масивами символів? По означенню рядок –це послідовність символів з завершуючим символом \0 Масив по означенню являє собою послідовність символів. Тому рядок –це масив символів з завершуючим нулем.
Наприклад в рядку
fghhjkg є 7 символів і ще нульовий символ \0 -всього вісім.
Задання символьних масивів. Масиви можуть задаватися при описі.
Char r[10]={‘a’,’b’,’c’,’d’, ‘\0’}; але вигідніше використовувати рядкові літерали, тобто послідовності символів в подвійних лапках.
Char r[10]=’’abcd’’;
Кожний раз, коли в програмі використовується рядковий літерал, компілятор автоматично додає нульовий символ в кінець рядка. Якщо при описі і заданні масиву символів опустити його довжину, то компілятор сам порахує довжину масиву по довжині літералу
Char r[]=’’abcd’’; В цьому рядку є масив з 5-ти елементів.
Для роботи з рядками існує бібліотека string.h. Приклади функцій для роботи з.
Функція | Прототип і короткий опис функції |
strcmp | int strcmp(const char *str1, const char *str2); Порівнює рядки str1 й str2. Якщо str1< str2, то результат від’ємний, якщо str1 = str2, то результат дорівнює 0, якщо str1> str2, то результат додатний. |
strcpy | char* strcpy(char*s1, const char *s2); Копіює рядок s2 у рядок s1 |
strncpy | char *strncpy(char *s1, const char *s2, int kol); Копіює kol символів рядка s2 у рядок s1. |
strlen | unsigned strlen (const char *str); Обчислює довжину рядка str. |
strcat | char *strcat(char *s1, const char *s2); Приписує символ рядка s2 до рядка s1. |
strncat | char *strncat(char *s1, const char *s2, int kol); Приписує kol символів рядка s2 до рядка s1. |
Рядки, при передачі у функцію, в ролі фактичних параметрів можуть бути визначені або як одновимірні масиви типу char[], або як вказівники типу char *. На відміну від звичайних масивів у цьому випадку немає необхідності явно вказувати довжину рядка.
Дата добавления: 2015-07-17; просмотров: 156 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Float cube(float x) | | | Практична робота № 7-8 |