Приветствую Вас ГостьПятница, 03.05.2024, 18:00

AVR & ARDUINO




Каталог статей

Главная » Статьи » Справочник

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";

Нулевой завершающий символ

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

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

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

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

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

Перенос длинных строк

Длинные строки можно переносить так:

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

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

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

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

Пример

char* myStrings[]={"This is string 1", "This is string 2", "This is string 3",
"This is string 4", "This is string 5","This is string 6"};

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

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

Смотрите также:

Массив

PROGMEM

Объявление переменных


Справочник

Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.



Источник: http://arduino.cc/en/Reference/String
Категория: Справочник | Добавил: magi (21.11.2014)
Просмотров: 3028 | Теги: строка, STRING | Рейтинг: 0.0/0
Всего комментариев: 0
avatar
Поиск
Вход на сайт
На правах рекламы

Мы переезжаем на сайт Arduino по-русски