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().