isAlpha()
isAlpha(thisChar) проверяет, является ли символ латинской буквой, и возвращает true или false — удобно при фильтрации ввода или разборе строк.
Полная статья
Описание
Функция isAlpha(thisChar) определяет, является ли переданный символ буквой — латинской строчной или прописной. Это удобно, когда нужно отфильтровать буквенные символы из строки или входного потока, отбросив цифры, знаки препинания и пробелы.
Синтаксис
isAlpha(thisChar)
Параметры
thisChar: символ типа char, который нужно проверить. Допустимый тип данных: char.
Возвращает
Функция возвращает true, если символ является буквой. Если символ — цифра, пробел, знак препинания или любой другой небуквенный символ, возвращается false.
Пример кода
char myChar = 'A'; // попробуйте с '#' — не буквенный символ
void setup() {
Serial.begin(9600);
if (isAlpha(myChar)) { // проверяет, является ли myChar буквой
Serial.println("The character is a letter");
} else {
Serial.println("The character is not a letter");
}
}
void loop() {
}
Где применяется
- Парсинг пользовательского ввода — например, чтобы принимать только текстовые команды и игнорировать случайно нажатые цифры.
- Валидация данных — проверка, что принятая по Serial строка содержит только буквы, прежде чем передавать её дальше.
- Разбор протоколов — когда нужно разделить поток символов на «слова» и «числа» без сложных условий.
- Фильтрация символов — очистка строки от лишних символов перед сравнением или выводом.
Практические замечания
- Функция проверяет только латинские буквы (A–Z, a–z). Кириллица и другие символы Unicode не распознаются как буквы.
- Поведение функции аналогично стандартной функции
isalpha()из<ctype.h>, которая учитывает текущую локаль. На Arduino локаль обычно фиксирована и соответствует ASCII. - Удобно использовать в цикле вместе с
charAt()или при обработке символов, считанных черезSerial.read(). - Если символ получен через
Serial.read(), сначала проверьте, что результат не равен-1, и только потом приводите его кchar. Иначе можно случайно проверить не символ, а признак «данных пока нет». - Функция не изменяет значение переменной — она только читает и возвращает результат проверки.