String Case Change Functions: toUpperCase() и toLowerCase()
Узнайте, как менять регистр строк в Arduino с помощью функций toUpperCase() и toLowerCase() — с практическими примерами и типичными ошибками.
Функции изменения регистра позволяют привести строку целиком к верхнему или нижнему регистру. Это удобно, когда нужно сравнивать пользовательский ввод без учёта регистра или форматировать вывод в Serial Monitor.
String предоставляет две функции:
toUpperCase()— переводит все символы строки в верхний регистр;toLowerCase()— переводит все символы строки в нижний регистр.
Обе функции затрагивают только латинские буквы от A до Z и от a до z. Цифры, знаки препинания и спецсимволы остаются без изменений.
Необходимое оборудование
Схема подключения
Дополнительные компоненты для этого примера не нужны. Достаточно подключить плату к компьютеру через USB и открыть Serial Monitor в Arduino IDE.

Плата Arduino UNO — дополнительные компоненты для этого примера не требуются.
Код
Как это работает
Функции toUpperCase() и toLowerCase() изменяют строку на месте — то есть они модифицируют саму строку, а не возвращают новую. Если вам нужно сохранить оригинал, сделайте копию до вызова функции:
String original = "Hello World";
String copy = original;
copy.toUpperCase(); // copy == "HELLO WORLD", original не изменился
Практические замечания
- Функции работают только с типом
String(с заглавной буквы). Для массивов символов (char[]) они не подходят — там нужны функции из<ctype.h>, напримерtoupper()иtolower(). - Кириллица и другие не-ASCII символы этими функциями не обрабатываются. Если вы работаете с русскоязычным вводом, регистр придётся менять вручную.
- Результат удобно использовать для сравнения строк без учёта регистра: приведите обе строки к одному регистру перед сравнением через
==.
Типичные ошибки
- Ожидание нового значения через
return. Функции не возвращают строку — они меняют исходный объект. Конструкция видаString s = myStr.toUpperCase();не скомпилируется. - Путаница с
char[]. Если вы используете массив символов вместоString, вызовmyArray.toUpperCase()приведёт к ошибке компиляции. - Открытый Serial Monitor. Если Serial Monitor закрыт, вывод не будет виден — убедитесь, что он открыт и скорость (baud rate) совпадает с той, что указана в
Serial.begin().
Как проверить результат
Откройте Serial Monitor (Ctrl+Shift+M или через меню Инструменты → Монитор порта). Вы увидите исходную строку и её варианты в верхнем и нижнем регистре, выведенные последовательно. Если вывод не появляется — проверьте скорость порта и наличие вызова Serial.begin() в setup().
Дополнительные материалы
Больше базовых примеров можно найти в разделе built-in examples.
Также рекомендуем изучить language reference — подробный справочник по языку программирования Arduino.
Последнее обновление: 2015/08/11, SM