Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
12
Добавлен:
17.04.2015
Размер:
43.16 Кб
Скачать

8. Проверки класса символа.

Заголовочный файл <ctype.h>объявляет функции, предназначенные для проверок символов. Аргумент каждой из них имеет типintи должен либо представлять собой EOF, либо быть значениемunsigned char, приведенным кint; возвращаемое значение тоже имеет типint. Функции возвращают ненулевое значение ("истина"), когда аргумент c удовлетворяет описанному условию или принадлежит указанному классу символов, и нуль в противном случае.

isalnum(c)

isalpha(c) илиisdigit(c) есть истина

isalpha(c)

isupper(c) илиislower(c) есть истина

iscntrl(c)

управляющий символ

isdigit(c)

десятичная цифра

isgraph(c)

печатаемый символ кроме пробела

islower(c)

буква нижнего регистра

isprint(c)

печатаемый символ, включая пробел

ispunct(c)

печатаемый символ кроме пробела, буквы или цифры

isspace(c)

пробел, смена страницы, новая строка, возврат каретки, табуляция, вертикальная табуляция

isupper(c)

буква верхнего регистра

isxdigit(c)

шестнадцатеричная цифра

В наборе семибитовых ASCII-символов печатаемые символы находятся в диапазоне от 0x20(' ') до0x7E('~'); управляющие символы - от0(NUL) до0x1F(US) и 0x7F (DEL).

Помимо перечисленных есть две функции, приводящие буквы к одному из регистров:

int tolower(int c) – переводитcна нижний регистр;

int toupper(int c) - переводитcна верхний регистр.

Если c- буква на верхнем регистре, тоtolower(c) выдаст эту букву на нижнем регистре; в противном случае она вернетc. Еслиc- буква на нижнем регистре, тоtoupper(c) выдаст эту букву на верхнем регистре; в противном случае она вернетc.

Функции ввода вывода символьных данных.

int fgetc(FILE *stream);

fgetcвозвращает следующий символ из потокаstreamв видеunsigned char(переведенную вint) или EOF, если исчерпан файл или обнаружена ошибка.

char *fgets(char *s, int n, FILE *stream);

fgetsчитает не болееn-1символов в массивs, прекращая чтение, если встретился символ новой строки, который включается в массив; кроме того, записывает в массив '\0'. Функцияfgetsвозвращаетsили, если исчерпан файл или обнаружена ошибка, NULL.

int fputc(int с, FILE *stream);

fputcпишет символc(переведенный вunsigned char) вstream. Возвращает записанный символ или EOF в случае ошибки.

int fputs(const char *s, FILE *stream);

fputsпишет строкуs(которая может не иметь '\n' ) вstream; возвращает неотрицательное целое или EOF в случае ошибки.

int getc(FILE *stream);

getcделает то же, что иfgetc, но в отличие от последней, если она - макрос,streamможет браться более одного раза.

int getchar(void);

getchar() делает то же, что getc(stdin).

char *gets(char *s);

getsчитает следующую строку ввода в массивs, заменяя символ новой строки на '\0'. Возвращаетsили, если исчерпан файл или обнаружена ошибка, NULL.

int putc(int с, FILE *stream);

putcделает то же, что иfputc, но в отличие от последней, еслиputc- макрос, значениеstreamможет браться более одного раза.

int putchar(int c);

putchar(c) делает тоже, что putc(c, stdout).

int puts(const char *s);

putsпишет строкуsи символ новой строки вstdout. Возвращает EOF в случае ошибки, или неотрицательное значение, если запись прошла нормально.

int ungetc(int с, FILE *stream);

ungetcотправляет символc(переведенный вunsigned char) обратно вstream; при следующем чтении изstreamон будет получен снова. Для каждого потока вернуть можно не более одного символа. Нельзя возвращать EOF. В качестве результатаungetcвыдает отправленный назад символ или, в случае ошибки, EOF.

Вопросы для самопроверки

    1. Символьные данные.

    2. Задание символьных данных.

    3. Ввод символьных данных.

    4. Вывод символьных данных.