You are on page 1of 4

ПРАКТИЧЕСКО УПРАЖНЕНИЕ No 1

СТАНДАРТНИ ФУНКЦИИ НА С++

1. Цел на упражнението
Запознаване с някои по-важни стандартни функции на С++,
ускоряващи процеса на програмиране. Разглеждат се по-често
използваните функции за преобразуване на символи, проверка на
символи и низове, обработка на символни низове и математически
операции.

2. Формат и предназначение на стандартните функции на С++

2.1. Функции за обработка на символи


Всички функции за обработка на символи са декларирани в
заглавния файл <ctype.h>.

Функции за проверка на букви и цифри

Към тези функции се предава символна стойност или цяла


стойност, равна на ASCII кода на символа.

int isalpha (int c) - връща стойност True (ненулева стойност), ако c


e буква и False (нула), ако c не е буква;
int islower (int c) - връща стойност True (ненулева стойност), ако c
e малка буква и False (нула) в противен случай;
int isupper (int c) - връща стойност True (ненулева стойност), ако c
e главна буква и False (нула) в противен случай;
int isdigit (int c) - връща стойност True (ненулева стойност), ако c e
цифра от 0 до 9 и False (нула) в противен случай;
int isxdigit (int c) - връща стойност True (ненулева стойност), ако c
e шестнадесетична цифра и False (нула) в противен случай;
int isalnum (int c) - връща стойност True (ненулева стойност), ако c
e цифра от 0 до 9 или буква (малка или главна) и False (нула) в противен
случай;

Функции за проверка на специални символи

int iscntr (int c) - връща стойност True (ненулева стойност), ако c e


управляващ символ (произволен символ от ASCII таблицата със
стойност от 0 до 31) и False (нула) в противен случай;
int ispunct (int c) - връща стойност True (ненулева стойност), ако c
e произволен препинателен знак (символ, различен от интервал, буква
или цифра) и False (нула) в противен случай;

1
int isspace (int c) - връща стойност True (ненулева стойност), ако c
е интервал, символ за нов ред (\n), символ за връщане на каретката (\r),
символ за табулация (\t) и False (нула) в противен случай;

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

int tolower (int c) - преобразува символа c в малка буква. Ако c е


малка буква или символ, различен от буква, нищо не се променя.
int toupper (int c) - преобразува символа c в главна буква. Ако c е
главна буква или символ, различен от буква, нищо не се променя.

2.2. Функции за работа със символни низове

Всички функции за работа със символни низове са декларирани в


заглавния файл <string.h>.
typedef unsigned size_t - тип, използван за размери на обект в
паметта и броячи.
size_t strlen (char *str) - изчислява дължината на символен низ,
без да се смята нулевият символ.
char *strcat (char *destin, char *source) - добавя копие на
символния низ source в края на destin. Дължината на получения
символен низ е strlen(destin) + strlen(source).
int strcmp (char *str1, char *str2) - сравнява str1 със str2. Всички
функции за сравнение връщат стойност (<0 ако str1<str2, ==0, ако
str1=str2 или >0, ако str1>str2) в зависимост от резултата от
сравнението. Сравнението е лексикографско.
int stricmp (char *str1, char *str2) - сравнява str1 със str2 без да
отчита разликата главни - малки букви от латинската азбука.
char *strcpy (char *destin, char *source) - копира символния низ
source в destin. В края се прибавя нулевият символ. Връща destin.
char *strdup (char *str) - копира символен низ в ново отделено за
него място. Връща указател към дублирания str.
char *strchr (char *str, int ch) - анализира символния низ str в
права посока, като търси първото появяване на символа ch в него.
Връща указател към първото появяване на ch в str. Ако ch не е намерен,
върнатата стойност e NULL. Нулевият символ се счита за част от
символния низ, така че strchr(strs,0) връща указател към завършващия
нулев символ на strs.
char *strstr (char *str1, char *str2) - търси в str1 първото появяване
на подмножеството str2. Връща указател към елемента от str1,
съдържащ str2 (сочи мястото на str2 в str1). Ако str2 не се среща в str1,
върнатата стойност е NULL.
char *strtok (char *str1, const char *str2) - сканира str1 за първия
знак, който не се съдържа в str2. Функцията strtok разглежда str1 като
последователност от думи, разделени от символите, изброени в str2.

2
Първото извикване на strtok връща указател към първия символ от
първата дума в str1 и записва NULL в str1 непосредствено след
върнатата дума. Всяко следващо извикване на функцията strtok с първи
аргумент NULL ще продължи да търси в str1 следващата дума.

Функции за преобразуване на символни низове в числа

Тези функции са декларирани в заглавния файл <stdlib.h>.

int atoi (const char *s) - преобразува низа s в цяло число;


long atol (const char *s) - преобразува низа s в дълго цяло число;
double atof (const char *s) - преобразува низа s в число с плаваща
запетая.

2.3. Математически функции


Всички математически функции са декларирани в заглавния файл
<math.h>.

double ceil (double x) - закръглява стойността на аргумента до


най-близкото по-голямо цяло число;
double floor (double x) - закръглява стойността на аргумента до
най-близкото по-малко цяло число;
int abs (int x)
double fabs (double x) - връща абсолютната стойност на x;
double fmod (double x, double y) - връща остатъка от делението
x/y като число с плаваща запетая със същия знак, като този на x;
double pow (double x, double y) - връща стойността на x
повдигната на степен y. Ако стойността на x е по-малка или равна на 0, y
трябва да бъде цяло число;
double sqrt (double x) - връща квадратния корен на х. Стойността
на х трябва да бъде по-голяма или равна на 0;
double cos (double x) - връща косинуса на ъгъл x, изразен в
радиани;
double sin (double x) - връща синуса на ъгъл x, изразен в радиани;
double tan (double x) - връща тангенса на ъгъл x, изразен в
радиани;
double exp (double x) - връща стойността на е повдигната на
степен х;
double log (double x) - връща натуралния логаритъм на х.
Стойността на х трябва да бъде по-голяма от 0;
double log10 (double x) - връща десетичния логаритъм на х.
Стойността на х трябва да бъде по-голяма от 0.

3
3. Задачи за изпълнение

Задача 1:
Да се съставят функции, които да закръгляват аргумента си -
произволно реално число - до най-близкото по-голямо и най-близкото
по-малко число.

Задача 2:
Да се състави програма, която да изчислява квадратен корен,
кубичен корен и корен от четвърта степен на числа от 10 до 25
включително.

Задача 3:
Да се състави програма, в която да се дефинират функции за
тестване на всяка от изброените функции за работа със символни
низове.

Задача 4:
Да се състави програма, която да съхранява пароли в масив от
символи с име pass. Чрез функцията strcmp(), да се провери за
правилно въведена парола. Да се изведе съответно съобщение.

Задача 5:
Да се състави програма за въвеждане на символни низове, всеки
на отделен ред, за сортиране и извеждането им на екрана. За
сортировката да се използва масив от указатели към основния масив от
символните низове.

Задача 6:
Да се състави програма, която чете текст от думи и печата броя на
еднобуквените, двубуквените и т.н. думи. За сканиране на низа да се
използва функцията strtok().

You might also like