length()

length() возвращает количество символов в строке String — удобно для посимвольного обхода, проверки на пустоту или ограничения длины ввода.

Полная статья

Описание

Функция myString.length() сообщает, сколько символов содержит строка. Завершающий нулевой символ ('\0'), который C++ добавляет в конец любой строки внутри, в это число не входит — возвращается именно то количество символов, которое вы видите в строке.

Это полезно, когда нужно проверить, пустая ли строка, обойти её посимвольно в цикле, ограничить ввод по длине или убедиться, что строка не вышла за допустимый предел перед отправкой по Serial или записью в память.

Синтаксис

myString.length()

Параметры

myString: переменная типа String, длину которой нужно узнать.

Возвращает

Количество символов в строке. Тип данных: unsigned int.

Если строка пустая (""), функция вернёт 0. Это удобно для проверки: if (myString.length() == 0) — строка ещё не заполнена.

Где применяется

  • Посимвольный обход строки: в цикле for используйте myString.length() как верхнюю границу индекса, чтобы не выйти за пределы строки.
  • Проверка ввода: если пользователь вводит данные через Serial, можно ограничить длину, сравнивая myString.length() с максимально допустимым значением.
  • Форматирование вывода: перед отправкой строки на дисплей или в протокол полезно знать её длину, чтобы правильно выровнять текст или разбить на пакеты.
  • Проверка на пустоту: быстрый способ убедиться, что строка не пустая, прежде чем обращаться к её символам.

Практические замечания

  • Функция возвращает unsigned int, поэтому результат всегда неотрицательный. Сравнивать его с отрицательным числом бессмысленно.
  • Длина строки типа String может меняться динамически: после вызовов concat(), +=, remove() и других методов значение length() обновляется автоматически.
  • Не путайте length() с размером буфера в памяти — функция считает именно символы, а не выделенные байты.
  • На платах с малым объёмом SRAM (например, Arduino Uno) активное использование динамических строк String может привести к фрагментации памяти. Если длина строки известна заранее, рассмотрите работу с массивами char и функцией strlen().