- Библиотеки
- Операторы
- Sketch
- Управляющие операторы
- Синтаксис
- Арифметические операторы
- Операторы сравнения
- Логические операторы
- Указатели доступа
- Битовые операторы
- Составные операторы
- Данные
- Типы данных
- string - массив символов
- Преобразование типов данных
- Область видимости переменных и квалификаторы
- Утилиты
- Функции
- Цифровой ввод/вывод
- Аналоговый вход/выход
- Расширенный ввод/вывод
- Время
- Математические функции
- Тригонометрические функции
- Символы
- Случайные числа
- Биты и байты
- Внешние Прерывания
- Прерывания
- Функции передачи данных
- Функции
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[] = "Это первая строка"
" это вторая строка"
" и так далее";
Массивы строк
Часто при работе с большими объемами текста, такими как проект с ЖК-дисплеем, удобно использовать массив строк. Поскольку сами строки являются массивами, это на самом деле пример двумерного массива.
В приведенном ниже коде звездочка после типа данных char ”char*” указывает на то, что это массив «указателей». Все имена массивов на самом деле являются указателями, поэтому это необходимо для создания массива массивов. Указатели являются одной из наиболее эзотерических частей C ++ для начинающих, чтобы понять, но нет необходимости понимать указатели подробно.
Пример
char *myStrings[] = {"Это строка 1", "Это строка 2", "Это строка 3",
"Это строка 4", "Это строка 5", "Это строка 6"
};
void setup() {
Serial.begin(9600);
}
void loop() {
for (int i = 0; i < 6; i++) {
Serial.println(myStrings[i]);
delay(500);
}
}