Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курс ПЯВУ 2 сем / Лекции 2 сем / Л№36.Библиотека стандартных программ / Лекция № 33. Библиотека стандартые функции.odt
Скачиваний:
15
Добавлен:
17.04.2015
Размер:
54.36 Кб
Скачать

Лекция № . Библиотека стандартных функцийязыка Си.

1. Основные отличия стандартной библиотеки Си от других

языков состоят в следующем:

· более сильная интеграция с языком. Так, в самом языке Си нет никаких средств ввода‑вывода, поэтому ни одна программа не может быть написана без использования функций стандартной библиотеки;

· несмотря на то, что существуют стандарты языка Си, ряд функций уникален для той или иной системы программирования;

· многие функции имеют несколько "подфункций", решающих разные задачи и обычно отличающихся одной буквой в названии, например, abs, fabs и labs для функции взятия модуля, printf, fprintf и sprintf для стандартной функции печати и т.д.

Далее рассматриваются основные разделы и функции стандартной библиотеки. Более полная информация может быть получена из рекомендуемых книг и справочной системы.

2. Определение класса символов и преобразование символов

Все функции, приведенные в табл. 8.1 имеют тип int и возвращают int. Возвращаемая величина равна 0, если условие проверки не выполняется. Все функции реализованы как макроопределения, заданные в файле ctype.h.

#include <ctype.h>

Таблица 1. Функции проверки и преобразования символов

________________________________________________________________________

Функция Краткое описание

________________________________________________________________________

isalnum проверка на латинскую букву или цифру

isalpha проверка на латинскую букву

isascii проверка на символ из набора кодировки ASCII

iscntrl проверка на управляющий символ

isdigit проверка на десятичную цифру

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

islower проверка на малую латинскую букву

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

ispunct проверка на знак пунктуации

isspace проверка на пробельный символ

isupper проверка на заглавную латинскую букву

isxdigit проверка на шестнадцатеричную цифру

toascii преобразование символа в код ASCII

tolower проверка и преобразование в малую латинскую букву, если

передана заглавная буква

toupper проверка и преобразование малой латинскую буквы в

заглавную

_tolower преобразование латинскую буквы в малую (без проверки)

_toupper преобразование латинскую буквы в заглавную(без проверки)

________________________________________________________________________________

В примере ниже символ c преобразуется к верхнему регистру:

char c='x';

if (tolower(c)) c=toupper (c);

Пример ниже подсчитывает относительные частоты букв кириллицы во вводимом тексте.

#include<stdio.h>

#include<conio.h>

void main(void) {

char lower_case[] =

"абвгдежзийклмнопрстуфхцчшщьъыэюя";

char upper_case[] =

"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ";

static float frequency[sizeof(lower_case)],

total=0.;

char ch; int index;

/* Завершение ввода - символ '$' */

puts("Печатайте текст\n");

while((ch = getchar()) != '$') {

//Определяем порядковый номер буквы.

for (index = 0; index < 32; index++)

if((lower_case[index]==ch)||

(upper_case[index]==ch)) {

total++;

frequency[index]++;

break;

}

}

puts("\nОтносительные частоты\n");

if (total) {

for (index = 0; index < 32; index++) {

frequency[index]=

frequency[index]*100./total;

printf("%c-%5.1f ",upper_case[index],

frequency[index]);

}

}

else

puts("\aНи одна буква не введена");

}}