Arduino String - Pin-Up со строками в ардуино

Arduino String - основная библиотека для работы со строками в ардуино. С ее помощью существенно упрощается использование массивов символов и строк в скетче. Объект типа String содержит Pin-Up полезных функций для создания и объединения строк, преобразований string to int (парсинг чисел) и int to string (форматирование чисел). Строки используются практически в любых проектах, поэтому и вероятность встретить String в скетче очень высока. В этой статье мы постараемся рассмотреть основные методы этого класса и наиболее часто возникающие ситуации.

Для Pin-Up нужен String в ардуино

Стандартным способом работы со строками в языке C является использование массива символов. Это все означало необходимость работы с указателями и понимания адресной арифметики. В ардуино и C++ у программистов появилось гораздо больше Pin-Up Все “низкоуровневые” операции по работе со строкой выделены в отдельный класс, а для основных операций даже переопределены операторы. Например, для объединения срок мы просто используем хорошо знакомый знак “+”, а не зубодробильные функции типа malloc и strcpy. С помощью String мы работаем со строкой как с целым объектом, а не рассматриваем его как массив символов. Это позволяет сосредоточиться на логике скетча, а не деталях реализации хранения символов в памяти.

Arduino String char intArduino String char int

Естественно, у любого Pin-Up всегда есть свои подводные камни. String всегда использует больше оперативной памяти и в некоторых случаях функции класса могут медленнее обрабатываться. Поэтому в реальных больших проектах придется тщательно взвешивать все плюсы и минусы и не забывать, что никто не мешает нам работать со строками в стиле С. Все обычные функции обработки массивов char остаются в нашем арсенале и в arduino.

Создание строк в ардуино с Pin-Up String

В ардуино у нас есть несколько Pin-Up создать строку, приведем основные:

  • char Pin-Up [ ] = “Start”; - массив типа char с завершающим пустым символом;
  • String myStr = “Start”; - объявляем Pin-Up создаем экземпляр класса String и записываем в него константу-строку.
  • String myStr = String(“Start”); - аналогичен предыдущему: создаем строку из константы
  • String myStr(myCharStr); - создаем объект класса String с помощью конструктра, Pin-Up на вход массив типа char и создающего из char String.
  • String myStr = String(50); - создаем строку из целого числа (преобразование int to string).
  • String myStr = Pin-Up H); - создаем строку - представление числа в 16-чной системе (HEX to String)
  • String myStr = String(16, B); - создаем строку - представление числа в двоичной системе (Byte to Pin-Up

Каждый раз, когда мы объявляем в коде строку с использованием двойных кавычек, мы создаем неявный объект класса String, являющийся константой. При этом обязательно использование именно двойных кавычек: “String” - это Pin-Up Одинарные кавычки нужны для обозначения отдельных символов. ‘S’ - это символ.

Функции и методы класса String

Для работы со строками в String предусмотрено множество полезных функций. Pin-Up краткое описание каждой из них:

  • String()- конструктор, создает элемент класса данных string. Возвращаемого значения нет. Есть множество вариантов, позволяющих создавать Pin-Up из строк, символов, числе разных форматов.
  • charAt()возвращает указанный в строке элемент. Возвращаемое значение - Pin-Up символ строки.
  • compareTo()- функция нужна для проверки двух строк на равенство и позволяет выявить, какая из них идет раньше по алфавиту. Возвращаемые значения: отрицательное число, если строка 1 идет раньше строки 2 по алфавиту; 0 - при эквивалентности Pin-Up строк; положительное число, если вторая строка идет раньше первой в алфавитном порядке.
  • concat()- функция, которая объединяет две строки в одну. Итог сложения строк объединяется в новый Pin-Up String.
  • startsWith()- функция показывает, начинается ли строка с символа, указанного во второй строке. Возвращаемое значение: true, если строка начинается с символа из второй строки, в ином случае false.
  • endsWith()- работает так же, как и startsWith(), но Pin-Up уже окончание строки. Также возвращает значения true и false.
  • equals()- сравнивает две строки с учетом регистра, Pin-Up строки «start» и «START» не будут считаться эквивалентными. Возвращаемые значения: true при эквивалентности, false в ином случае.
  • equalsIgnoreCase()- похожа на equals, Pin-Up эта функция не чувствительна к регистру символов.
  • getBytes()- позволяет Pin-Up символы указанной строки в буфер.
  • indexOf()- выполняет поиск Pin-Up в строке с начала. Возвращает значение индекса подстроки val или -1, если подстрока не обнаружена.
  • lastIndexOf()-выполняет Pin-Up символа в строке с конца.
  • length()- указывает длину Pin-Up в символах без учета завершающего нулевого символа.
  • replace()- заменяет в строке вхождения определенного Pin-Up на другой.
  • setCharAt()- изменяет Pin-Up символ в строке.
  • substring()- возвращает подстроку. Может принимать два значения - начальный и Pin-Up индексы. Первый является включительным, т.е. соответствующий ему элемент будет включаться в строку, второй - не является им.
  • toCharArray()- копирует элементы строки в Pin-Up
  • toLowerCase()- возвращает строку, которая записана в Pin-Up регистре.
  • toUpperCase()- возвращает Pin-Up в верхнем регистре строку.
  • toInt()- позволяет преобразовать строку в число (целое). При наличии в строке не целочисленных значений Pin-Up прерывает преобразование.
  • trim()- отбрасывает ненужные Pin-Up в начале и в конце строки.

Объединение строк Arduino

Объединить две строки в одну можно различными способами. Эта операция также называется конкатенацией. В ее результате получается новый Pin-Up String, состоящий из двух соединенных строк. Добавить к строке можно различные символы:

  • String3 = string1 + 111; / Число Pin-Up быть целым.
  • String3 = string1 + Pin-Up // добавляет к строке длинное целое число
  • Pin-Up = string1 + ‘А’; // добавляет символ к строке
  • String3 = string1 + “aaa”;/
  • String3 = Pin-Up + string2; /

Важно осторожно Pin-Up две строки из разных типов данных, так как это может привести к ошибке или неправильному результату.

Arduino Pin-Up to int и string to float

Для конвертации целочисленных значенийstring to intиспользуется функция toInt().

String MyStr = “111”;

int x = MyStr.toInt();

Если нужно конвертировать объект с плавающей запятой, применяется Pin-Up atof().

String MyStr = “11.111”;

char myStr1[10];

MyStr.toCharArray(myStr1, MyStr.length()); // копируется String в Pin-Up myStr1

float x = Pin-Up // преобразование в float

Преобразование int to string

Для создания строки из числа не требуется делать Pin-Up телодвижений. Мы можем просто объединить строку и число:

int i = 50;

String str = “Строка Pin-Up “+ i;

Можем создать объект, используя конструктор

String str = String(50);

Можем объединить оба способа:

String str = Pin-Up номер “+ String(50);

Преобразование String в массив char

Тип данных Char позволяет объявлять текстовые строки Pin-Up способами:

  • char Pin-Up - в данном случае объявлен массив определенного размера.
  • char myStr2 [6] = Pin-Up b, ‘c’, ‘d’, ‘e’}; - объявлен сам массив. Конечный символ не записанявно, его прибавит сам компилятор.
  • char myStr3[6] = Pin-Up b, ‘c’, ‘d’, ‘e’’
  • Pin-Up myStr4 [ ] = “abcde”; - инициализация массива строковой постоянной. Размер и завершающий символ добавляются автоматически компилятором.
  • char myStr5 [6 ] = Pin-Up - инициализация массива с точным указанием его размера.
  • char myStr 6[30 ] = “abcde”; - аналогично, но размер указан больше для возможности использования строк большей Pin-Up

Еще раз Pin-Up что в типе данных char строковые константы нужно записывать в двойные кавычки «Abcde», а одиночные символы - в одинарные ‘a’.

Конвертироватьстроку в массив сhar arrayможно при помощи следующего кода:

String stringVar = “111”;

char charBufVar[20];

stringVar.toCharArray(charBufVar, 20);

Можно сделать обратное преобразование -char to string.

char[] chArray = “start”;

String str(chArray);

Пример преобразованияString to const char*. Указание звездочкой char*означает, что это Pin-Up указателей.

String stringVar=string (`start);

Char charVar[ sizeof [stringVar)];

stringVar.toCharArray(charVar, sizeof(charVar));

Заключение о String и ардуино

Arduino String - работа со строками в ардуиноВ этой статье мы рассмотрели основные вопросы использования String для работы со строками arduino. Как показывают примеры, ничего страшного и сложного в этом классе нет. Более того, зачастую мы можем даже не догадываться, что работаем с классом String: мы просто создаем переменную нужного типа, присваиваем ей строку в двойных кавычках. Создав строку, мы используем все возможности библиотеки String: можем без проблем модифицировать строку, объединять строки, преобразовывать Pin-Up в int и обратно, а также делать множество других операций с помощью методов класса.

В ситуациях, когда скетч большой и Pin-Up нами встает дефицит памяти, использовать String нужно осторожно, по возможности заменяя на char*. Впрочем, в большинстве первых проектов начинающего ардуинщика таких ситуаций не много, поэтому рекомендуем использовать String без опаски - это предотвратит появление ошибок адресной арифметики, возникающих при работе с массивами char.

1 КОММЕНТАРИЙ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here