Рядки в c і символьні масиви (відео), purecodecpp

З рядками ми з вами працювали практично в кожній нашій програмі і до цього уроку. Точніше із строковими константами - послідовністю символів в подвійних лапках. Нам часто доводилося виводити на екран ту чи іншу інформацію. наприклад:

Текст в лапках і є строкова константа. Лапки використовуються для визначення початку і кінця строкової константи і її частиною є.

Отже про перший: в C ++ для зберігання рядків використовують символьні масиви. Це такі ж масиви, як ми з вами вже розглядали в статті про масивах в С ++. але зберігають вони не числові дані, а символьні. Можна уявити символи такого масиву розташованими послідовно в сусідніх комірках пам'яті - в кожному осередку зберігається один символ і займає один байт. Один байт тому, що кожен елемент символьного масиву має тип char. Останнім символом кожної такого рядка є символ \ 0 (нульовий символ). наприклад:

Сам текст, включаючи пробіл, складається з 11-ти символів. Якби в останній комірці перебувала наприклад. (Точка), а не нульовий символ \ 0 - для компілятора це вже не рядок. І працювати з таким набором символів треба було б, як зі звичайним масивом - записувати дані в кожну клітинку окремо і виводити на екран посимвольний (за допомогою циклу):

На щастя в C ++ є куди більш зручний спосіб ініціалізації і звернення до символьних масивів - один рядок. Для цього останнім символом такого масиву обов'язково повинен бути нульовий символ \ 0. Саме він робить набір символів рядком, працювати з якою, набагато легше, ніж з масивом символів.

Оголошується рядок таким чином - створюємо масив типу char. розмір в квадратних дужках вказувати не обов'язково (його підрахує компілятор), оператор = і в подвійних лапках пишемо необхідний текст. Тобто инициализируем масив строкової константою:

Прописувати нульовий символ не треба. Він присутній неявно і додається в кожну таку строкову константу автоматично. Таким чином, при тому що ми бачимо 11 символів в рядку, розмір масиву буде 12, так як \ 0 теж символ і займає один байт пам'яті. Займе він останній осередок цього символьного масиву. Як бачите, для виведення рядка на екран, досить звернутися до неї по імені: cout <

Хочу звернути вашу увагу на відмінність символьної константи (в одинарних лапках - 'f', '@') від строкової константи (в подвійних лапках