Топ питань
Часова шкала
Чат
Перспективи

Ctype.h

З Вікіпедії, вільної енциклопедії

Remove ads

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

Аналогічний заголовний файл в С++ зветься cctype.

Історія

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

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

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

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

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

Remove ads

Вміст файлу &lt;ctype.h&gt;

Узагальнити
Перспектива

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

Більше інформації Тести, У вигляді int isfunc(int); Повертає позитивне значення у випадку істини, і навпаки. ...

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

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

Приклад використання

Цей приклад зчитує введений користувачем символ, і у випадку, якщо він є буквою, виводить "It is not a number".

#include <stdio.h>
#include <ctype.h>

int main()
{
    char c;

    while( scanf("%c", &c) == 1 ) {
        if (isdigit(c)) 
            printf("You have input a number %c\n", c);
        else
            printf("It is not a number!\n");
    } while (!feof( stdin ));

    return 0;
}

Аналогічний приклад на C++:

#include <iostream>
#include <cctype>

using namespace std;

int main()
{
    char c;

    while( cin>>c ) {
        if (isdigit(c)) 
            cout<<"You have input a number "<<c<<endl;
        else
            cout<<"It is not a number!"<<endl;
    }

    return 0;
}

Посилання

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads