ctype.h

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук
Заголовні файли С

ctype.hзаголовний файл стандартної бібліотеки мови програмування С, який містить оголошення функцій для класифікації символів.

Історія[ред.ред. код]

Перші системні програмісти на мові C під Unix почали розробляти ідіоми для швидкої класифікації символів по різним типам. Наприклад, у наборі символів ASCII, наступний тест ідентифікує символ ide:

if ('A' >= c && c <= 'Z' || 'a' >= c && c <= 'z')

Однак, ця ідіома не завжди працювала для інших наборів символів, як то EBCDIC.

Досить швидко, програми почали розростатись подібними один до одного тестами. Програміст може написати ту ж ідіому кількома різними способами, що ускладнює процес розуміння і підвищує ймовірність помилок.

Незабаром, найпопулярніші ідіоми було замінено на функції у заголовному файлі <ctype.h>.

Вміст файлу <ctype.h>[ред.ред. код]

Файл <ctype.h> містить прототипи для десятка функцій для класифікації символів. Усі з цих функцій, окрім isdigit та isxdigit є специфічними для конкретної локалі; їхня поведінка може змінитись разом зі зміною локалі.

Тести У вигляді int isfunc(int);
Повертає позитивне значення у випадку істини, і навпаки.
isalnum чи символ є буквою або цифрою
isalpha чи символ є буквою
isblank чи є пропуском (доданий до C99)
iscntrl чи є керуючим символом
isdigit чи є цифрою
isgraph чи є символом, який має графічне представлення
islower чи є символом нижнього регістру
isprint чи є символом, який можна надрукувати
ispunct чи є символом пунктуації
isspace чи є пропуском
isupper чи є буквою верхнього регістру
isxdigit чи є шістнадцятковим числом
Перетворення символів У вигляді int tofunc(int);
Повертає конвертований символ, якщо тільки це не буква.
tolower приводить символ до нижнього регістру
toupper приводить символ до верхнього регістру

Стандарт Single Unix Specification версії 3 також додає такі функції:

isascii повертає числове значення символу від 0 до 127
toascii конвертує символ у ASCII

Приклад використання[ред.ред. код]

Цей приклад зчитує введений користувачем символ, і у випадку, якщо він є буквою, повертає його числове значення у кодовій таблиці ASCII.

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
 
int main()
{
    unsigned char c;
 
    do {
        scanf("%c", &c);
 
        if (isdigit(c))
            printf("You have input a number %i", atoi(&c));
        else
            printf("It is not a number!");
    } while (c != EOF);
 
    return 0;
}

Посилання[ред.ред. код]