Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив WinRAR / 2_Посібник_С_002.doc
Скачиваний:
39
Добавлен:
17.05.2015
Размер:
2.7 Mб
Скачать

4.3 Функції перевірки літер

У файлі ctype.h описано прототипи функцій, що призначені для перевірки літер. Ці функції повертають ненульове значення (істина), коли її аргумент задовольняє заданій умові або належить вказаному класу літер, та нуль в іншому випадку(табл 4.2).

Таблиця 4.2 – Функції перевірки літер

int islower(int с)

символ с є малою літерою;

int isupper(int c)

символ с є великою літерою;

int isalnum(int c)

символ с є буквою або цифрою;

int isalpha(int c)

символ с є буквою;

int tolower(int c)

перетворення літери у нижній регістр;

int strtol(int c)

перетворення рядка у довге ціле число;

4.4 Рядок символів

У мові С немає окремого типу даних “рядок символів”, подібно до типу string у алгоритмічній мові PASCAL. Тому робота з рядками реалізована шляхом використання одновимірних масивів типу char. Рядок символів – це одновимірний масив типу char, останнім елементом якого є нульовий байт. Нульовий байт – це байт, кожен біт якого рівний нулю, при цьому для нульового байта визначена символьная константа \0(ознака закінчення рядка або нуль-термінатор). Тому, якщо рядок містить k символів, в описі масиву потрібно вказати розмірність k+1.

Так, для збереження у масиві рядкової константи “Лабораторна робота з рядками”, необхідно описати масив char s[29]. В кінці рядкової константи символ ´ \0вказувати не потрібно, оскільки це зробить компілятор мови С(рис. 4.1).

Приклад 3. Рядок символів.

S=”ПИРІЖОК=)”;

Рисунок 4.1 – Сприйняття комп’ютером символьного рядка.

Так сприймає рядок комп’ютер. Тому, S[0]==’П’, S[8]==’)’.

4.5 Операції з рядками:

а) Рядки можна ініціалізувати при декларуванні.

Приклад 4.Ініціалізація даних.

char S1[10] = ”123456789”, S2[] = ”Srting”, S3[] = {‘1’,‘2’,‘3’,‘\0’};

В двох останніх випадках розмір рядків буде встановлений за кількістю символів;

б) Рядки можна вводити з клавіатури, не використовуючи при цьому оператора циклу, подібно звичайним масивам.

Приклад 5. Введення масиву.

char TeMa [20];

printf(“Введіть тему лабораторної роботи:\n”);

scanf(“%s”, TeMa);

4.6 Символьні константи

Для символьних даних в C введено тип char. Для представлення символьної інформації використовуються символи, символьні змінні і текстові константи.

Приклад 6.Змінні типу char.

const char c=’c’; /*символ-константа – займає один байт*/

char a,b; /*символьні змінні, займають по одному байту*/

const char *s=“Приклад рядка\n” ; /*рядкова константа */

Рядок в С - це масив символів, що закінчується нуль-символом ‘\0’. За місцезнаходженням цього символу визначається фактична довжина рядка. Кількість елементів у такому масиві на 1 більше за зображення рядка(рис. 4.2).

Рисунок 4.2 – Символ і рядок

9. Покажчики

5.1 Визначення та ініціалізація покажчиків

Пам'ять комп'ютера можна представити у вигляді послідовності комірок, кожна з мінімальним розміром один байт. Комірки нумеруються послідовно (рис. 5.1).

Рисунок 5.1 - Послідовна нумерація комірок пам’яті

Покажчик – це зміна, що зберігає адресу іншої змінної.

Синтаксис визначення покажчика наступний:

<тип> *<ім’я покажчика>

де тип – це тип даних на який вказує покажчик;

ім’я покажчика– ідентифікатор.

Синтаксис виклику функції наступний:

Приклад 1.Присвоєння адреси змінній(рис. 5.2).

pointer = &variable; /*якщо «&» перед ініціалізатором, то це операція взяття адреси присвоєння адреси variable змінній pointer */

тобто pointer «вказує» на variable:

Рисунок 5.2 – Присвоєння адреси змінній

Розглянемо ще один фрагмент:

Приклад 2.Змінна та її адреса(рис. 5.3).

variable = 13;

varsecond = variable;

pointer = &variable;

Рисунок 5.3 – Змінна та її адреса.

Покажчик визначається наступним чином:

<тип> *< ідентифікатор> = <ініціалізатор>;

Під ініціалі затором розуміється якась адреса зміної(тоді використовуємо взяття адреси змінної &) або вже існуючий покажчик, але не вираз типу &41.

Соседние файлы в папке Архив WinRAR