- •1. Кроки для створення виконання програми
- •2. Змінні та константи
- •3. Символьні масиви і рядки
- •4. Директиви препроцесора
- •Тема 2: введення-виведення даних план
- •Аргументи для setiosflags і resetiosflags
- •2. Функція printf
- •2. Операції відношення
- •3. Логічні операції
- •4. Додаткові операції
- •5. Порозрядні операції
- •Тема 4: організація циклів план
- •1. Організація циклів за допомогою while і do...While
- •2. Організація циклів із використанням оператора for
- •3. Оператори switch і goto
- •Тема 5: створення функцій план
- •1. Створення функцій
- •2. Видимість змінних
- •3. Передача значень
- •4. Повертаємі значення і прототипи функцій
- •Тема 6: зовнішні пристрої і символьне введення/виведення план
- •1. Загальна концепція
- •2. Функції символьного введення-виведення
- •3. Символьні функції
- •4. Рядкові функції
- •5. Числові функції
- •6. Функції роботи з датою та часом
- •Тема 7: масиви план
- •1. Одномірні масиви, їхня ініціалізація
- •2. Сортування масивів
- •3. Розміщення одномірного масиву в пам’яті
- •4. Багатомірні масиви і їхнє розміщення в пам’яті
- •Тема 8. Вказівки і посилання план
- •1. Вказівки
- •2. Масиви і вказівки
- •Тема 9: робота з файлами план
- •1. Загальна характеристика роботи з файлами
- •2. Послідовні файли
- •Можливі режими доступу
- •3. Файли довільного доступу (із випадковим доступом)
- •Тема 10. Структури план
- •1. Загальна характеристика структури
- •2. Масиви структур
- •3. Використання масивів, як елементів структур
- •2. Робота зі структурами є універсальною, передбачено додавання записів до файлу (флаг ios:app). Для підрахунку кількості структур на диску приведемо наступні рядки програми:
- •Список літератури
3. Символьні функції
Прототипи всіх обговорюваних тут функцій описані в заголовному файлі ctype. h.
isalpha(c) - Істина (не нуль), якщо буква
islower(c) - Істина (не нуль), якщо мала літера
isupper(c) - Істина (не нуль), якщо прописна буква
isdigit(c) - Істина (не нуль), якщо цифра від 0-9
isalnum(c)- Істина (не нуль), якщо цифра 0-9 або буква
Приклад:
Програма запитує в користувача його ініціал. Якщо користувач вводить що-небудь відмінне від букв, програма виводить повідомлення про помилку і попросить повторити введення.
#include <iostream.h>
#include <ctype.h>
void main()
{
char initial;
cout << "Введіть ініціал ?";
cin >> initial;
while (! isalpha (initial))
{
cout <<"\n Помилка \n";
cout << "Введіть ініціал?";
cin >> initial;
}
}
Функції перетворення символів.
tolower(c) – перетворить символ до нижнього регістра;
toupper(c) – перетворить символ до верхнього регістра.
4. Рядкові функції
Описуються у файлі string. h
char *strcat(char *s1, const char *s2);
додати рядок s2 у кінець масиву символів s1. Масив s1 повинен мати достатньо вільних елементів.
char *strncat(char *s1, const char *s2, unsigned m);
додати m символів рядка s2 у кінець масиву символів s1. Масив s1 повинен мати достатньо вільних елементів.
char *strchr( char *s, char c);
пошук першого входження символу c у рядку s
int strcmp(const char *s1, const char *s2);
дорівнюються рядки s1 і s2. Повертає:
якщо s1 < s2 - від’ємне значення;
якщо s1 > s2 - додатне значення;
якщо s1 і s2 збігаються - 0.
int strncmp(const char *s1, const char *s2, unsigned m);
теж, що і функція strcmp, але порівнюються перші m символів двох рядків.
Функції stricmp і strnicmp виконують ті ж дії, але без урахування регістра символів (тільки латинські символи).
char *strcpy(char *s1, const char *s2);
копіює рядок s2 у рядок s1.
char *strncpy(char *s1, const char *s2, unsigned m);
копіює перші m символів рядка s2 у рядок s1.
unsigned strlen(const char *s);
повертає довжину s. (Довжина рядка - кількість символів без урахування завершального нуля ’\0’.)
char *strlwr(char *s);
переводить рядок s у нижній регістр (тільки латинські символи).
char *strupr(char *s);
переводить рядок s у верхній регістр (тільки латинські символи).
char *strset(char *s, int ch);
заповнює весь рядок s символами ch.
char *strnset(char *s, int ch, unsigned m);
заміняє перші m символів рядка s на символ ch.
char *strrev(char *s);
перетворить рядок s в зворотному порядку.
unsigned strcspn(const char *s1, const char *s2);
повертає позицію в рядку s1 символу з рядка s2.
char *strpbrk(char *s1, const char *s2);
повертає покажчик на перший символ рядка s1, який міститься в рядку s2.
char *strrchr(char *s, char c);
пошук останнього входження символу c у рядку s
unsigned strspn(const char *s1, const char *s2);
повертає позицію в рядку s1 символа, що не входить у рядок s2.
char *strtok(char *s1, const char *s2);
виділяє фрагменти рядка s1, розділені одно- або багатосимвольними роздільниками з рядка s2. При першому звертанні до strtok видається адреса першого фрагмента. Наступні виклики з завданням NULL замість першого аргументу (s1) будуть видавати адреси наступних фрагментів із рядка s1 доти, поки фрагментів не залишиться.
Перетворення рядків у числа.
atoi(s) – перетворить s до цілого (alphabetic to integer);
atol(s) – перетворить до довгому цілому (alphabetic to long);
atof(s) – до числа з плаваючої точкою (alphabetic to float).