Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_5.doc
Скачиваний:
4
Добавлен:
16.11.2019
Размер:
98.3 Кб
Скачать

Лабораторна робота № 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;

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]