Главная chevron_right Уроки chevron_right Встроенные примеры chevron_right Строки chevron_right String Case Change Functions: toUpperCase() и toLowerCase()

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