- •Коментарі
- •Змінні та типи даних
- •Константи
- •Введення – виведення даних
- •Контрольні запитання
- •1.4 Варіанти індивідуальних завдань
- •2 Рішення задач з простою змінною
- •2.1 Ціль роботи
- •2.2 Вказівки по організації самостійної роботи студентів
- •2.2.1 Використання оператора умовного переходу
- •If (а) оператор 1 ;
- •2.2.2 Оператори циклу
- •2.3 Контрольні запитання
- •2.4 Варіанти індивідуальних завдань
- •3.1 Мета роботи
- •3.2 Методичні вказівки до організації самостійної роботи студентів
- •3.3 Контрольні запитання
- •3.4 Варіанти індивідуальних завдань
- •4 Робота із структурами
- •4.1 Мета роботи
- •4.2 Методичні вказівки до організації самостійної роботи студентів
- •4.3 Контрольні запитання
- •4.4 Варіанти індивідуальних завдань
- •5 Функції
- •5.1 Мета роботи
- •5.2 Методичні вказівки по організації самостійної роботи студентів
- •5.3 Контрольні запитання
- •5.4 Варіанти індивідуальних завдань
- •6 Робота з рядками
- •6.1 Мета роботи
- •6.2 Методичні вказівки до організації самостійної роботи студентів
- •6.3 Контрольні запитання
- •6.4 Варіанти індивідуальних завдань
- •7 Пошук і сортування
- •7.1 Мета роботи
- •7.2 Методичні вказівки до організації самостійної роботи студентів
- •7.2.1.Лінійний пошук
- •7.2.2 Пошук розподілом навпіл (двоїчний пошук)
- •7.2.3 Сортування вставками
- •7.2.4 Метод пухирця
- •7.2.5 Сортування перерахуванням
- •7.2.6 Швидке сортування
- •7.3 Контрольні запитання
- •Варіанти індивідуальних завдань
6.2 Методичні вказівки до організації самостійної роботи студентів
У мові С++ є кілька можливостей роботи з символьними даними. Класична робота зводиться до використання масива символів. Для того, щоб скористуватися стандартними функціями С++ для роботи з рядками, треба їх файли підключити в директиві #include <string.h>. Основні функції з цього пакету наведено нижче.
char*strcat (char*_dest, const char*_src);
Функція реалізує сціплення рядка dest з рядком src. Функція вертає покажчик на початок отриманого рядка (dest). Проміжний символ‘\0’ рядка dest гаситься.
char*strncat (char*_dest, const char*_src, size_t_maxlen);
Приєднує maxlen символів з рядка, на який вказує src, до рядка, на який вказує dest. Рядок dest повинен містити не менше maxlen вільних байтів. Якщо maxlen більше рядка src, виконується проста конкатенація.
char*strchr (const char*_, int_c);
Функція вертає покажчик на позицію першого входження символу “c” в рядок, на який вказує s. В рядок s включається і символ ‘\0’.
int strcmp (const char*_s1, const char*_s2);
Функція виконує порівняння двох рядків, на початок яких вказують s1 і s2. Функція вертає значення: менш нуля, якщо s1<s2; рівне нулю, якщо s1==s2; більше нуля, якщо s1>s2.
int strnсmp (const char*_s1, const char*_s2, size_t_maxlen);
Функція, що аналогічна функції strcmp () і відрізняється тим, що виконується порівняння перших maxlen байтів.
int stricmp (const char *_s1, const char *_s2);
Функція виконує порівняння двох рядків, на що вказують s1 і s2. Перед порівнянням символи перетворюються в малі. Функція вертає значення: більше нуля, якщо s1>s2; рівно нулю, якщо s1==s2; менш нуля, якщо s1<s2.
int strlen (const char*_s);
Функція вертає довжину рядка в байтах, на який вказує s. Нуль-терминатор не враховується.
char*stpcpy (char *_dest, const char *_src);
Функція копіює рядок, на котрий вказує src, в інше місце в пам'яті, на що вказує est. Функція вертає покажчик на кінець рядка, що скопіювався в dest.
char*strncpy (char*_dest, const char*_src, size_t_maxlen);
Функція копіює maxlen байт з рядка, на який вказує src, в інше місце в пам'яті, на що вказує dest. Нуль-термінатор теж копіюється. Якщо maxlen менш довжини рядка src, до рядка src не приєднується символ“\0”. І якщо більше, то рядок src переноситься повністю, а символи, що залишалися, заповнюються символом “\0”. Функція вертає покажчик dest.
char *strlwr (char *_s);
Функція перетворює всі символи рядка, на початок якого вказує s, в малі літери. Функція повертає покажчик на початок цього рядка.
char *strups (char *_s);
Функція перетворює всі символи рядка, на початок якої вказує s, в великі літери. Функція вертає покажчик на отриманий рядок.
char *strset (char *_s, int_ch);
Функція заповнює рядок, на початок якого вказує s, символом ch. Функція вертає покажчик на отриманий рядок.
Приклад 6
Підрахувати кількість слів у рядку, враховуючи те, що пробілів між словами може бути скількі завгодно.
#include <iostream.h>
#include <conio.h>
void main()
{char *s=”Repetitio est mater studiorum”;
int i=1, col=0;
while (s[i]==’\0’)
{if (s[i]!=’ ’) { col++;
while (s[i]!=’ ’)
i++;}
else while (s[i]==’ ’)
i++;}
cout<<”\nKilkist sliv=”<<col<<’\n’;}