Содержание
Текстовые строки могут быть объявлены двумя способами: можно использовать тип данных String, который входит в ядро, начиная с версии 0019; либо объявить строку как массив символов char с нулевым символом в конце. На этой странице описан второй способ. Для получения более подробной информации об объекте String, предоставляющем больше возможностей ценой большего расхода памяти, см. страницу String – объект.
Примеры
Ниже представлены примеры правильного объявления строк.
Допускаемые операции при объявлении строк
- Объявить массив символов без его инициализации (Str1)
- Объявить массив символов с одним избыточным элементом, компилятор сам добавит требуемый нулевой символ (Str2)
- Добавить нулевой символ явно (Str3)
- Инициализировать массив с помощью строковой константы, заключенной в кавычки; компилятор создаст массив необходимого размера с нулевым символом в конце (Str4)
- Инициализировать массив с помощью строковой константы, явно указав его размер (Str5)
- Инициализировать массив избыточного размера, оставив место для более длинных строк (Str6)
Нулевой завершающий символ
Как правило, все строки завершаются нулевым символом (ASCII код 0), который позволяет функциям (подобным Serial.print()) определять длину строки. Без этого символа они продолжали ли бы последовательно считывать байты памяти, которые фактически уже не являлись бы частью строки.
По сути, это означает, что длина вашей строки должна быть на 1 символ больше, чем текст, который вы хотели бы в ней хранить. Именно поэтому Str2 и Str5 должны быть длиной 8 символов, несмотря на то, что слово "arduino" занимает всего 7 – последняя позиция автоматически заполняется нулевым символом. Размер Str4 автоматически станет равным 8 – один символ требуется для завершающего нуля. В строке Str3 мы самостоятельно указали нулевой символ (обозначается ‘