- •Лабораторна робота № 5
 - •Теоретична частина
 - •Введення рядків.
 - •Завдання на лабораторну роботу
 - •Завдання на лабораторну роботу
 - •Завдання на лабораторну роботу
 - •Завдання на лабораторну роботу
 - •Завдання на лабораторну роботу
 - •Завдання на лабораторну роботу
 - •Завдання на лабораторну роботу
 - •Завдання на лабораторну роботу
 - •Звіт по лабораторній роботі повинен містити:
 
Лабораторна робота № 5
Тема: Рядки в С++.
Мета: отримання навичок при обробці рядків.
Теоретична частина
C++ не містить стандартного типу даних "рядок". Замість цього він підтримує масиви символів, що завершуються нуль-символом. У C++ опис рядків має наступний вигляд:
char str[20]; - оголошений рядок, довгою 20 символів.
Ініціалізація рядків :
str="Привіт"!; - рядок символів, поміщений в подвійні лапки, є строковою константою.
char s[ ] = {'С', 'т', 'р', 'о', 'к', 'а', '\0'};
ФУНКЦІЇ ДЛЯ РОБОТИ З РЯДКАМИ.
Заголовний файл для рядків - <string.h>.
Функції:
Ім'я  | 
		Опис  | 
	
char * strcpy (char *dest, const char *src).  | 
		копіює рядок src в рядок dest  | 
	
int strcmp (const char *s1, const char *s2)  | 
		порівнює рядки, якщо s1 = = s2 те повертає 0, якщо s1 <s2 повертає негативне значення, якщо s1 >s2 повертає позитивне значення  | 
	
char * strcat (char *dest, const char *src)  | 
		об'єднання рядків, приєднує src до dest  | 
	
int strstr (const char *s1, const char *s2)  | 
		пошук підрядка, повертає покажчик на перше входження s2 в s1. Якщо збіги не виявлено, повертається нульовий покажчик.  | 
	
int strlen (const char *s)  | 
		визначає довжину рядка s  | 
	
char*strtok(char *s1, char *s2)  | 
		**повертає покажчик на наступне слово в рядку s1, s2 - роздільники, які відділяють слова в рядку s1  | 
	
* * щоб розділити рядок на слова, при першому виклику strtok параметр s1 повинен вказувати на на початок цього рядка, при наступних викликах як s1 треба використовувати нульовий покажчик.
Заголовний файл <stdlib.h>
Функції:
Ім'я  | 
		Опис  | 
	
double atof(const char* p)  | 
		перетворить переданий рядок в double;  | 
	
int atoi (const char* p)  | 
		перетворить переданий рядок в int;  | 
	
long atol (const char* p)  | 
		перетворить переданий рядок в long.  | 
	
Заголовні файли <ctype. h>
Функції для роботи з символами
Ім'я  | 
		Перевірка на приналежність символу множині  | 
	
isalnum  | 
		букв і цифр (A - Z, a - z, 0-9)  | 
	
isalfa  | 
		букв (A - Z, a - z)  | 
	
iscntrl  | 
		символів (з кодами 0.31 і 127), що управляють  | 
	
isdigit  | 
		цифр (0-9)  | 
	
isgraph  | 
		друкованих символів, окрім пропуску (isalfa | isdigit | ispunct)  | 
	
islower  | 
		букв нижнього регістра (a - z)  | 
	
isprint  | 
		друкованих символів  | 
	
ispunct  | 
		знаків пунктуації  | 
	
isspace  | 
		символів-роздільників  | 
	
isupper  | 
		букв верхнього регістра (A - Z)  | 
	
isxdigit  | 
		шістнадцятиричних цифр (A - F, a - f, 0-9)  | 
	
Функції приймають величину типу int і повертають значення true, якщо умова виконується. Рекомендується користуватися стандартними функціями, а не писати власні цикли перевірки, оскільки це знижує кількість помилок в програмі. Окрім описаних вище, в бібліотеці є функції tolower і toupper, що переводять символ латинського алфавіту відповідно в нижній і верхній регістр.
Приклад використання стандартних функцій.
##include <string.h>
##1nclude <iostream.h>
void main ()
{
char cl[80], c2[80], с3[60];// Рядки із завершуючим нулем
// // Привласнення рядків
strcpy(cl, "Мова програмування З++");
strcpy(c2, cl);
strcpy(c3, "треба вивчити"!);
cout<<c1<<'\n';
cout<<c2<<'\n';
// // Конкатенація рядків
strcpy(c1, c3);
cout<<c1<<'\n';
// // Порівняння рядків
if (strcmp(c2, c3)< 0) cout " c2;
else cout " c3;
}
