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