Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Топ:
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Финансовый рынок и его значение в управлении денежными потоками на современном этапе: любому предприятию для расширения производства и увеличения прибыли нужны...
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2020-05-08 | 171 |
5.00
из
|
Заказать работу |
|
|
Библиотека обработки символов включает в себя несколько функций, каждая функция получает в качестве аргумента символ — представляемый типом int — или индикатор EOF (конец файла). Операции с символами часто выполняются как с целыми числами, поскольку символ в С это однобайтовое целое. На рис. 1 приведен перечень функций библиотеки обработки символов.
Прототип | Описание функции |
int isdigit (int с) | Возвращает значение true, если с является цифрой, и 0 (false) в других случаях. |
int isalpha (int c) | Возвращает значение true, если с является буквой, и 0 в других случаях. |
int isalnum (int c) | Возвращает значение true, если с является цифрой или буквой, и 0 в других случаях. |
int isxdigit (int c) | Возвращает значение true, если с является одним из символов шестнадцатеричного формата, и 0 в других случаях. |
int islower (int c) | Возвращает значение true, если с является буквой нижнего регистра, и 0 в других случаях. |
int isupper (int c) | Возвращает значение true, если с является буквой верхнего регистра, и 0 в других случаях. |
int tolower (int c) | Если с является буквой верхнего регистра, то tolower возвращает с как букву нижнего регистра. В других случаях tolower возвращает аргумент без изменений. |
int toupper (int c) | Если с является буквой нижнего регистра, то toupper возвращает с как букву верхнего регистра. В других случаях toupper возвращает аргумент без изменений. |
int isspace (int c) | Возвращает значение true, если с является пробельным символом -пробел (' '), новая страница (\f), новая строка (\n), возврат каретки (\r), горизонтальная табуляция (\t) или вертикальная табуляция (\v), - и 0 в других случаях. |
int iscntrl (int c) | Возвращает значение true, если с является управляющим символом, и 0 в других случаях. |
int ispunct (int c) | Возвращает значение true, если с является отображаемым при печати символом, но не относится к пробельным символам, цифрам или буквам. В других случаях функция возвращает значение 0. |
int isprint (int c) | Возвращает значение true, если с является отображаемым при печати символом, включая символ пробела (‘ ‘), и 0 в других случаях. |
int isgraph (int c) | Возвращает значение true, если с является отображаемым при печати символом, исключая символ пробела (‘ ‘), и 0 в других случаях. |
Рис. 1. Перечень функций библиотеки обработки символов
|
Для работы с функциями библиотеки обработки символов, необходимо подключить заголовочный файл < ctype. h >.
Программа, приведенная на рис. 2, демонстрирует применение функций isdigit, isalpha, isalnum и isxdigi t. Функция isdigit определяет, является ли ее аргумент цифрой (0-9). Функция isalpha определяет, попадает ли ее аргумент в список букв верхнего (A-Z) или нижнего (a-z) регистров. Функция isalnum определяет принадлежность аргумента буквам верхнего и нижнего регистров или цифрам. Функция isxdigit определяет, является ли аргумент шест-надцатеричной цифрой (A-F, a-f, 0-9).
/* Применение функций isdigit, isalpha, isalnum и isxdigit */
#include <stdio.h>
#include <ctype.h>
main (){
printf ("%s\n%s%s\n%s%s\n\n", "According to isdigit: ", isdigit('8')? "8 is a ": "8 is not a ", "digit", isdigit('#')?"# is a ": "# is not a ", "digit"); printf("%s\n%s%s\n%s%s\n%s%s\n%s%s\n\n", "According to isalpha:", isalpha('A')? "A is a "
: "A is not a ", "letter", isalpha('b')? "b is a ": "b is not a ", "letter", isalpha ('&')? "& is a ": "& is not a ", "letter", isalpha ('4')? "4 is a ": "4 is not a ", "letter");
printf ("%s\n%s%s\n%s%s\n%s%s\n\n", "According to isalnum:",
isalnum('A')? "A is a ": "A is not a ", "digit or a letter",
isalnum('8')? "8 is a ": "8 is not a ",
"digit or a letter", isalnum('#')? "# is a ": "# is not a ", "digit or a letter"); printf ("%s\n%s%s\n%s%s\n%s%s\n%s%s\n%s%s\n", "According to isxdigit:", isxdigit (' F')? "F is a ": "F is not a ", "hexadecimal digit",
isxdigit('J')? "J is a ": "J is not a ",
"hexadecimal digit", isxdigit ('7')? "7 is a ": "7 is not a ",
"hexadecimal digit", isxdigit ('$')? "$ is a ": "$ is not a ",
"hexadecimal digit",isxdigit('f')? "f is a ": "f is not a ", "hexadecimal digit");
|
return 0; }
Вывод на экран
According to isdigit: 8 is a digit
# is not a digit
According to isalpha:
A is a letter
b is a letter
& is not a letter;,
4 is not a letter
According to isalnum:
A is a digit or a letter
8 is a digit or a letter
# is not a digit or a letter
According to isxdigit:
F is a hexadecimal digit
J is not a hexadecimal digit
7 is a hexadecimal digit
$ is not a hexadecimal digit
f is a hexadecimal digit
Рис. 2. Применение isdigit, isalpha, isalnum, isxdigit
Программа рис. 2 использует с каждой функцией условную операцию (?:), чтобы определить, какую из строк «is а» (это) или «is not a» (это не) следует вывести на печать для каждого проверяемого символа. Например выражение
isdigit ('8')? "8 is a": "8 is not a" означает, что если '8' является цифрой, т.е. функция isdigit возвращает новое значение (ненулевое), то печатается строка «8 is а», и, если '8' не является цифрой, т.е. isdigit возвращает 0, печатается строка «8 is not a».
Программа, приведенная на рис. 3, демонстрирует применение функций islower, isupper, tolower и toupper. Функция islower определяет, является ли ее аргумент буквой нижнего регистра (а—z). Функция isupper определит является ли ее аргумент буквой верхнего регистра (A—Z). Функция tolower образует регистр буквы из верхнего в нижний и возвращает букву нижнего регистра. Если аргумент не является буквой верхнего регистра, то функция tolower возвращает аргумент без изменений. Функция toupper преобразует регистр буквы из нижнего в верхний и возвращает букву верхнего регистре. Если аргумент не является буквой нижнего регистра, то функция toupper возвращает аргумент без изменений.
/* Применение функций islower, isupper, tolower, toupper */
#include <stdio.h>
#include <ctype.h>
main () {
printf("%s\n%s%s\n%s%s\n%s%s\n%s%s\n\n",
"According to islower:",
islower ('P')? "P is a ": P is not a ",
"lowercase letter",
islower ('p')? "p is a ": "p is not a ",
"lowercase letter",
islower ('5')? "5 is a ": "5 is not a ",
"lowercase letter",
islower ('!')? "! is a ": "! is-not a ",
"lowercase letter"); printf ("%s\n%s%s\n%s%s\n%s%s\n%s%s\n\n",
"According to isupper:",
isupper ('d')? "D is a ": "D is not an ",
"uppercase letter",
isupper ('d')? "d is a ": "d is not an ",
"uppercase letter",
isupper ('8')? "8 is a ": "8 is not an ",
"uppercase letter",
isupper ('$')? "5 is a ": "$ is not an ",
"uppercase letter"); printf("%s%c\n%s%c\n%s%c\n%s%c\n",
"u converted to uppercase is ", toupper ('u'),
"7 converted to uppercase is ", toupper ('7'),
"$ converted to uppercase is ", toupper ('$'),
"L converted to lowercase is ", tolower ('L')); return 0; }
Вывод на экран
According to islower:
P is not a lowercase letter
|
p is a lowercase letter
5 is not a lowercase letter
! is not a lowercase letter
According to isupper:
D is an uppercase letter
d is not an uppercase letter
8 is not an uppercase letter
$ is not an uppercase letter
u converted to uppercase is U
7 converted to uppercase is 7
$ converted to uppercase is $
L converted to lowercase is 1
Рис. 3. Применение islower, isupper, tolower, toupper
Рис. 4 иллюстрирует применение функций isspace, iscntrl, ispunct, isprint и isgraph. Функция isspace определяет принадлежность аргумента следующему списку пробельных символов: пробел (' '), новая страница (‘\f’), новая строка (‘\n’), возврат каретки ('\r'), горизонтальная табуляция ('\t'), вертикальная табуляция ('\v'). Функция iscntrl определяет принадлежность аргумента следующему списку управляющих символов: горизонтальная табуляция ('\t'), вертикальная табуляция ('\v'), новая страница (‘\f’), звуковой сигнал (‘\а’), возврат на один символ ('\b'), возврат каретки ('\r')> новая строка ('\n’). Функция ispunct определяет, является ли аргумент знаком пунктуации или специальным символом, не относящимся к цифрам, буквам или пробелам, например, $, #, (), >, [], {},;,:, % и т.д. Функция isprint определяет, можно ли отобразить данный символ на экране (включая символ пробела). Функция isgraph работает так же, как и isprint, но из списка символов исключен символ пробела.
/* Применение функций isspace, iscntrl, ispunct, isprint,
isgraph */
#include <stdio.h>
#include <ctype.h>
main () {
printf("%s\n%s%%s%s\n%s%s%s\n%s%s\n\n",
"According to isspace:",
"Newline", isspace ('\n')? " is a ": " is not a ",
"whitespace character", "Horizontal tab",
isspace ('\t')? " is a ": " is not a ",
"whitespace character",
isspace ('%')? "% is a ": "% is not a ",
"whitespace character"); printf ("%s\n%s%s%s\n%s%s\n\n", "According to iscntrl:",
"Newline", iscntrl ('\n')? " is a ": " is not a ",
"control character",
iscntrl ('$')? "$ is a ": "$ is not a ",
"control character");
printf ("%s\n%s%s\n%s%s\n%s%s\n\n", "According to ispunct:",
ispunct (';')? "; is a ": "; is not a ",
"punctuation character",
ispunct ('Y')? "Y is a ": "Y is not a ",
"punctuation character",
ispunct ('#')? "# is a ": "# is not a '",
"punctuation character"); printf ("%s\n%s%s\n%s%s%s\n\n", "According to isprint:",
isprint ('$')?"$ is a ": "$ is not a ",
"printing character"
"Alert", isprint ('\a')? " is a ": " is not a ",
"printing character"); printf ("%s\n%s%s\n%s%s%s\n", "According to isgraph:",
isgraph ('Q')? "Q is a ": "Q is not a ",
|
"printing character other than a space",
"Space", isgraph(' ')? " is a ": "is not a ",
"printing character other than a space"); return 0; }
Вывод на экран
According to isspace:
Newline is a whitespace character
Horizontal tab is a whitespace character
% is not a whitespace character
According to iscntrl:
Newline is a control character $ is not a control character
. According to ispunct:
; is a punctuation character
Y is not a punctuation character
# is a punctuation character
According to isprint:
$ is a printing character
Alert is not a printing character
According to isgraph:
Q is a printing character other than a space
Space is not a printing character other than a space
Рис. 4. Применение isspace, iscntrl, ispunct, isprint, isgraph
3. Функции преобразования строк
Эти функции расположены в библиотеки утилит общего назначения (stdlib) и преобразуют строки цифр в целые значения и значения с плавающей точкой. На рис. 5 приведен перечень функций преобразования строк. Обратите внимание на модификатор const в описании переменной nPtr в заголовке функции (читается справа налево: «nPtr является указателем на символьную константу»); const объявляет, что значение аргумента не будет изменяться.
Прототип | Описание функции |
double atof (const char *nPtr) | Преобразует строку nPtr в тип double. |
lint atoi (const char *nPtr) | Преобразует строку nPtr в тип int. |
long atol (const char *nPtr) | Преобразует строку nPtr в тип long int. |
double strtod (const char *nPtr, char **endPtr) | Преобразует строку nPtr в тип double. |
long strtol (const char *nPtr, char **endPtr, int base) | Преобразует строку nPtr в тип long. |
unsigned long strtoul (const char *nPtr, char **endPtr, int base) | Преобразует строку nPtr в тип unsigned long. |
Рис. 5. Перечень функций преобразования строк
|
|
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Автоматическое растормаживание колес: Тормозные устройства колес предназначены для уменьшения длины пробега и улучшения маневрирования ВС при...
История развития пистолетов-пулеметов: Предпосылкой для возникновения пистолетов-пулеметов послужила давняя тенденция тяготения винтовок...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!