C++ Функція рядка: strcpy(), strcat(), strlen(), strcmp()
⚡ Розумний підсумок
C++ Функції роботи з рядками, такі як strcpy, strcat, strlen та strcmp, дозволяють програмам копіювати, об'єднувати, вимірювати та порівнювати текст. У цьому ресурсі пояснюється, що таке рядок, як оголошувати рядки в стилі C та std::string, отримувати доступ до їхніх значень та застосовувати основні функції роботи з рядками з прикладами.

Що таке рядок?
Рядок — це послідовність символів. А C++ string – це об'єкт класу std::string. Символи зберігаються як послідовності байтів, з доступом до одного байта символу.
C++ Рядки розподіляють пам'ять динамічно. За потреби під час виконання рядку можна виділити більше пам'яті. Оскільки попереднього розподілу пам'яті немає, немає її марнування. Ми можемо виконувати різні операції з рядками, включаючи порівняння, конкатенацію, перетворення тощо.
Оголошення рядків
C++ підтримує два типи оголошень рядків:
- Рядок символів у стилі C
- Тип класу String
Рядок символів C-Style
Цей тип оголошення рядків був введений у Мова програмування C. C++ продовжує його підтримувати. Це просто одновимірний масив символів, що завершується нульовим символом (\0). Рядок, що завершується нулем, містить символи, що складають рядок, за якими йде нуль.
Розглянемо оголошення рядка, подане нижче:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Наведене вище оголошення створює рядок, який утворює слово John. Слово містить 4 символи, але рядок має розмір 5. Додатковий пробіл дозволяє зберігати нульовий символ.
Використовуючи правило ініціалізації масиву, ми можемо записати наведений вище оператор наступним чином:
char name[] = "John";
Зверніть увагу, що вам не потрібно розміщувати нульовий символ у кінці рядкової константи. C++ компілятор автоматично розмістить '\0' у кінці рядка під час ініціалізації масиву.
std :: рядок
Стандарт C++ Бібліотека надає клас string, який підтримує різні операції з рядками. Він записаний як std::string.
Щоб використовувати цей клас, ми повинні спочатку включити його в нашу робочу область за допомогою препроцесора #include, як показано нижче:
#include <string>
Далі ми можемо оголосити наш рядок за допомогою ключового слова string. Наприклад:
string name = "John";
Наведений вище оператор створить рядок з ім’ям для зберігання значення John.
Доступ до рядкових значень
In C++, ми можемо отримати доступ до рядкових значень за допомогою імені рядка. Наприклад:
#include <iostream> using namespace std; int main() { char name[5] = { 'J', 'o', 'h', 'n', '\0' }; cout << "String value is: "; cout << name << endl; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередині якої слід додати логіку програми. { позначає початок тіла функції main().
- Оголошення рядка символів і надання йому імені. Рядок зберігатиме значення John. Додатковий пробіл зберігатиме нульовий символ.
- Друк тексту на консолі.
- Друк значення рядка з назвою name на консолі.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Ось ще один приклад використання C++ стандартний клас рядків:
#include <iostream> #include <string> using namespace std; int main() { string name = "Guru99"; cout << "The name is : " << name << endl; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи стандартний клас рядків у наш код.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередині якої слід додати логіку програми. { позначає початок тіла функції main().
- Оголошення рядка та надання йому імені name. Рядок зберігатиме значення Guru99.
- Друк значення назви рядка поряд із текстом на консолі.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().
Рядкові функції в C++
Вам часто захочеться маніпулювати рядками. C++ надає широкий спектр функцій, які можна використовувати для цього. Ці функції визначені в заголовок, тому нам потрібно включити його в наш код, щоб використовувати функції. Давайте обговоримо деякі з них:
strcpy ()
Це функція копіювання рядка. Він копіює один рядок в інший.
Синтаксис:
strcpy(string1, string2);
Два параметри функції, string1 та string2, є рядками. Функція скопіює рядок string2 у string1.
strcat()
Це функція конкатенації рядків. Він об’єднує рядки.
Синтаксис:
strcat(string1, string2);
Два параметри функції, string1 та string2, – це рядки, які потрібно об’єднати. Вищезгадана функція об’єднає рядок string2 з кінцем рядка string1.
strlen()
Це функція довжини рядка. Він повертає довжину рядка, переданого йому як аргумент.
Синтаксис:
strlen(string1);
Параметр string1 — це ім'я рядка, довжину якого необхідно визначити. Наведена вище функція поверне довжину рядка string1.
strcmp()
Це функція порівняння рядків. Використовується для порівняння рядків.
Синтаксис:
strcmp(string1, string2);
Вищевказана функція поверне 0, якщо рядки string1 та string2 схожі, менше за 0, якщо string1 < string2, і більше за 0, якщо string1 > string2.
приклад:
У наступному прикладі показано, як використовувати наведені вище рядкові функції:
#include <iostream> #include <cstring> using namespace std; int main() { char name1[10] = "Guru99"; char name2[10] = "John"; char name3[10]; int len; strcpy(name3, name1); cout << "strcpy( name3, name1) : " << name3 << endl; strcat(name1, name2); cout << "strcat( name1, name2): " << name1 << endl; len = strlen(name1); cout << "strlen(name1) : " << len << endl; return 0; }
вихід:
Ось скріншот коду:
Code Пояснення:
- Включаючи файл заголовка iostream у наш код. Це дозволить нам читати з консолі та писати в неї.
- Включаючи стандарт заголовок у нашому коді.
- Включаючи простір імен std, щоб використовувати його класи та функції без його виклику.
- Виклик функції main(), всередині якої слід додати логіку програми. { позначає початок тіла функції main().
- Оголошення рядка з 10 символів та надання йому імені name1. Рядок зберігатиме значення Guru99.
- Оголошення рядка з 10 символів і надання йому імені name2. Рядок зберігатиме значення John.
- Оголошення рядка з 10 символів і надання йому імені name3.
- Оголошення ан ціла змінна названий лен.
- Копіювання рядка name1 у рядок name3.
- Виведення значення рядка name3 разом із деяким текстом у консоль. Має вивести Guru99.
- Об'єднання рядка name2 з кінцем рядка name1. Значення name1 тепер Guru99Джон.
- Виведення значення рядка name1 разом із деяким текстом у консоль. Має вивести Guru99Джон.
- Визначення довжини рядка з іменем name1 та присвоєння значення довжини змінній len.
- Виведення значення змінної len разом з іншим текстом на консоль.
- Функція main() має повертати значення, якщо програма працює нормально.
- Кінець тіла функції main().




