string (массив символов)

Текстовые строки могут быть представлены двумя способами. вы можете использовать тип данных String, который является частью ядра начиная с версии 0019, или вы можете сделать строку из массива типа char и завершить ее нулевым символом. На этой странице описан последний метод. Для получения дополнительной информации об объекте String, который дает вам больше функциональности за счет большего объема памяти, см. Страницу объекта String .

Синтаксис

Все следующее является допустимым объявлением для строк.

char Str1[15];
char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'};
char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'};
char Str4[] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";

Возможности для объявления строк

Объявите массив символов без инициализации, как в Str1

Объявите массив символов (с одним дополнительным символом), и компилятор добавит необходимый нулевой символ, как в Str2

Явно добавьте нулевой символ, Str3

Инициализировать строковой константой в кавычках; компилятор изменит размер массива, чтобы он соответствовал строковой константе и завершающему нулевому символу, Str4

Инициализируйте массив с явным размером и строковой константой, Str5

Инициализируйте массив, оставляя дополнительное место для большей строки, Str6

Нулевое окончание

Обычно строки заканчиваются нулевым символом (код ASCII 0). Это позволяет функциям (например Serial.print()) определять, где находится конец строки. В противном случае они продолжат читать последующие байты памяти, которые на самом деле не являются частью строки.

Это означает, что в вашей строке должно быть место на один символ больше, чем текст, который вы хотите, чтобы он содержал. Вот почему Str2 и Str5 должны содержать восемь символов, хотя «arduino» всего семь - последняя позиция автоматически заполняется нулевым символом. Str4 будет автоматически иметь размер до восьми символов, один для дополнительного нуля. В Str3 мы явно включили нулевой символ (написанный '\ 0') сами.

Обратите внимание, что возможно иметь строку без окончательного нулевого символа (например, если вы указали длину Str2 как семь вместо восьми). Это сломает большинство функций, которые используют строки, поэтому вы не должны делать это намеренно. Если вы заметили, что что-то странно ведет себя (работает с символами, которых нет в строке), это может быть проблемой.

Одинарные кавычки или двойные кавычки?

Строки всегда определяются в двойных кавычках («Abc»), а символы всегда определяются в одинарных кавычках («A»).

Оформление длинных сток

Вы можете оформить длинные строки так:

char myString[] = "This is the first line"
" this is the second line"
" etcetera";

Массивы строк

Часто при работе с большими объемами текста, такими как проект с ЖК-дисплеем, удобно настраивать массив строк. Поскольку сами строки являются массивами, это фактически является примером двумерного массива.

В приведенном ниже коде звездочка после типа данных char«char *» означает, что это массив «указателей». Все имена массивов на самом деле являются указателями, поэтому это необходимо для создания массива массивов. Указатели являются одной из наиболее эзотерических частей C ++ для начинающих, но нет необходимости разбираться в указателях подробно, чтобы эффективно использовать их здесь.

Пример кода

void setup() {
	Serial.begin(9600);
}

void loop() {
	for (int i = 0; i < 6; i++) {
		Serial.println(myStrings[i]);
		delay(500);
	}
}