Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ООП_Навч_посібник.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
6.58 Mб
Скачать

5.3.4. Використання функції strlen()

Загальний формат виклику функції strlen() є таким:

strlen(s);

У цьому записі s – рядок. Функція strlen() повертає довжину рядка, вказаного аргументом s. У процесі виконання наведеної нижче програми буде показана довжина рядка, введеного з клавіатури.

Код програми 5.10. Демонстрація механізму використання функції strlen()

#include <iostream> // Для потокового введення-виведення

#include <cstdio> // Для підтримки системи введення-виведення

#include <cstring> // Для роботи з рядковими типами даних

using namespace std; // Використання стандартного простору імен

int main()

{

char strMas[80];

cout << "Введіть рядок: ";

gets(strMas);

cout << "Довжина рядка дорівнює: " << strlen(strMas);

getch(); return 0;

}

Якщо користувач введе рядок "Привіт усім!", програма виведе на екрані число 12. При підрахунку символів, з яких складається заданий рядок, ознака завершення рядка (нульовий символ) не враховується.

А у процесі виконання цієї програми рядок, введений з клавіатури, буде відображено на екрані в зворотному порядку. Наприклад, під час введення слова "привіт" програма відобразить слово тівирп. Необхідно пам'ятати, що рядки є символьні масиви, які дають змогу посилатися на кожен елемент (символ) окремо.

Код програми 5.11. Демонстрація відображення рядка в зворотному порядку|ладі|

#include <iostream> // Для потокового введення-виведення

#include <cstdio> // Для підтримки системи введення-виведення

#include <cstring> // Для роботи з рядковими типами даних

using namespace std; // Використання стандартного простору імен

int main()

{

char strMas[80];

int i;

cout << "Введіть рядок: ";

gets(strMas);

for(i=strlen(strMas)-1; i>=0; i--) cout << strMas[i];

getch(); return 0;

}

У наведеному нижче прикладі продемонструємо використання всіх розглянутих вище чотирьох рядкових функцій.

Код програми 5.12. Демонстрація механізму використання всіх чотирьох рядкових функцій

#include <iostream> // Для потокового введення-виведення

#include <cstdio> // Для підтримки системи введення-виведення

#include <cstring> // Для роботи з рядковими типами даних

using namespace std; // Використання стандартного простору імен

int main()

{

char s1[80], s2[80];

cout << "Введіть два рядки: ";

gets(s1);

gets(s2);

cout << "Їх довжини дорівнюють: " << strlen(s1);

cout << " " << strlen(s2) << "\n";

if(!strcmp(s1, s2))

cout << "Рядки однакові\n";

else

cout << "Рядки не однакові\n";

strcpy(s1, s2);

cout << s1 << "\n";

strcpy(s1, s2);

cout << s1 << " і " << s2 << " ";

cout << "тепер однакові\n";

getch(); return 0;

}

Якщо запустити цю програму на виконання і на пропозицію ввести рядки "привіт" і "усім", то вона відобразить на екрані такі результати:

Їх довжини дорівнюють: 6 4

Рядки не однакові

привіт усім

всім і всім тепер однакові

Останнє нагадування: не забувайте, що функція strcmp() повертає значення false, якщо рядки однакові. Тому, якщо Ви перевіряєте рівність рядків, необхідно використовувати оператор "!" (НЕ), щоб реверсувати умову (тобто змінити її на зворотне), як було показано в попередній програмі.