Arduino:Справочник языка Arduino/Типы данных/string

Материал из ВикиСправочника
Перейти к: навигация, поиск

{{#setlogo:ArduinoCommunityLogo.png}}

Проверка/Оформление/Редактирование: Мякишев Е.А.


string - текстовые строки

Текстовые строки в Ардуино объявляются как массив (array) типа char (символов - литер), оканчивающийся символом "конца строки".

Синтаксис

Ниже приведены варианты объявления и присвоения строк:

  1. char Str1[15]; // Объявление массива символов без присваивания значений
  2. char Str2[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o'}; //  Объявление массива символов и присвоение значений всем элементам, кроме последнего, компилятор Arduino автоматически добавит символ конца строки
  3. char Str3[8] = {'a', 'r', 'd', 'u', 'i', 'n', 'o', '\0'}; // Явно объявлен завершающий символ
  4. char Str4[ ] = "arduino"; // Инициализирование массива строковой константой в двойных кавычках. Компилятор автоматически задаст требуемый размер на массив, равный количеству символов плюс завершающий символ
  5. char Str5[8] = "arduino"; // Инициализирование массива с явным заданием размера и присвоением строковой константы
  6. char Str6[15] = "arduino"; // Инициализирование массива с явным заданием дополнительного размера (с запасом), фактически превышающего размер строковой константы при начальном присвоении

Символ окончания строки

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

Массивы символов, выделяемый под строку, должны иметь один дополнительный элемент для символа конца строки. Именно поэтому Str2 и Str5 должны иметь 8 символом, хотя "arduino" 7 символов — последнему элементу автоматически присваивается символ окончания строки.

Технически возможно объявить строку без символа окончания строки, например, объявить длину массива равной 7 для Str2. Это приведет к некорректной работе функций, оперирующих строками.

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

Строки всегда объявляются внутри двойных кавычек ("Abc"). Символы — внутри одинарных ('A')

Инициализация длинных строк

Длинные строки могут быть объявлены так:

  1. char myString[] = "This is the first line"
  2. " this is the second line"
  3. " etcetera";

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

При работе с большими объемами текстовой информации, например в проектах с LCD дисплеем, бывает удобно использовать массивы строк. Так как строки сами по себе массивы, массивы строк будет двумерным массивом.

В примере ниже, символ звездочки после объявления типа "char*" указывает на то, что это массив указателей. Это необходимо для задания двумерного массива. В данном случае не требуется понимания всех тонкостей работы с указателями.

Пример

  1. char* myStrings[]={"This is string 1", "This is string 2", "This is string 3",
  2. "This is string 4", "This is string 5","This is string 6"};
  3.  
  4. void setup(){
  5. Serial.begin(9600);
  6. }
  7.  
  8. void loop(){
  9. for (int i = 0; i < 6; i++){
  10.    Serial.println(myStrings[i]);
  11.    delay(500);
  12.    }
  13. }

См.также

Внешние ссылки