C-style строки. Часть 2
Часть раздела Основы путешествия по C++ на Coddy — урок 68 из 74.
Важно помнить, что при объявлении строки в стиле C определенного размера необходимо выделить достаточно места для символов, которые вы хотите сохранить, плюс одно дополнительное место для нулевого символа.
Например:
// Правильно: для "Hello" требуется 6 позиций
// (5 букв + '\0')
char str1[6] = "Hello";// Ошибка: Массив слишком мал!
// "Hello" требует 6 мест, но выделено только 5
char str2[5] = "Hello";
// Ошибка: не скомпилируется - только 5 слотов для 6 символов ('H','e','l','l','o','\0')// Правильно: лишнее место — это нормально
// Места более чем достаточно (требуется 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, для копирования строк, что мы рассмотрим в последующих уроках.
Попробуйте сами
В этом уроке нет задания по программированию.
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Основы
4Операторы. Часть 1
Арифметические операторыОператор остатка от деленияИнкремент и декрементПостфиксный инкремент и декрементСокращенные арифметические операцииОператоры сравненияСравнение строк7Основы ввода-вывода
Оператор coutОператор cinВвод строкПовторение — До 120Повторение — Истина или ложь3Переменные. Часть 2
Объявление типовСоглашения об именованииПовторение: инициализация переменныхПриведение типов. Часть 1Приведение типов. Часть 26Принятие решений
Оператор ifКонструкция if - elseОператор switchУсловный операторПовторение: if - elseВложенный if - else9Циклы
Цикл For, часть 1Цикл WhileЦикл Do WhileBreakContinueЦикл For, часть 2Вложенные циклыБесконечные циклыИтоги — Динамический ввод12Строки
C-style строки. Часть 1C-style строки. Часть 2Операции со строкамиСтроковые функции. Часть 1Строковые функции. Часть 2