Menu
Coddy logo textTech

C-style строки. Часть 2

Часть раздела Основы путешествия по C++ на Coddy — урок 68 из 74.

Важно помнить, что при объявлении строки в стиле C определенного размера необходимо выделить достаточно места для символов, которые вы хотите сохранить, плюс одно дополнительное место для нулевого символа.

Например:

// Правильно: для "Hello" требуется 6 элементов
// (5 букв + '\0')
char str1[6] = "Hello";
// Ошибка: Массив слишком мал!
// "Hello" требует 6 мест, но выделено только 5
char str2[5] = "Hello";
// Это может вызвать проблемы
// Правильно: лишнее место — это нормально
// Более чем достаточно места (требуется 10 > 6)
char str3[10] = "Hello";
// Пример, показывающий подсчет символов:
char name[5] = "John";  // Требуется 5 мест:
// J + o + h + n + '\0' = 5 символов

Вы можете получить доступ к отдельным символам в строке в стиле C, используя синтаксис массивов:

char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'

Вы также можете изменять символы в строке в стиле C, если не выходите за границы массива:

char str[] = "Hello";
str[0] = 'J';
std::cout << str; // Выводит "Jello"

Однако вы не можете напрямую присвоить новую строку строке в стиле C после того, как она была объявлена. Вам нужно будет использовать такие функции, как strcpy для копирования строк, которые мы рассмотрим в следующих уроках.

Шпаргалка

При объявлении строк в стиле C выделяйте место для всех символов плюс один для нулевого терминатора '\0':

// Правильно: для "Hello" нужно 6 мест (5 букв + '\0')
char str1[6] = "Hello";

// Неправильно: массив слишком мал!
char str2[5] = "Hello"; // Это может вызвать проблемы

// Правильно: лишнее место — это нормально
char str3[10] = "Hello";

Доступ к отдельным символам осуществляется с помощью синтаксиса массивов:

char str[] = "Hello";
char first = str[0]; // 'H'
char third = str[2]; // 'l'

Изменение символов в пределах границ массива:

char str[] = "Hello";
str[0] = 'J';
std::cout << str; // Выводит "Jello"

Примечание: вы не можете напрямую присвоить новую строку строке в стиле C после объявления. Используйте такие функции, как strcpy, для копирования строк.

Попробуйте сами

В этом уроке нет задания по программированию.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы