isPunct()
isPunct() проверяет, является ли символ знаком пунктуации (запятая, точка, скобки и т. п.), и возвращает true или false.
Полная статья
Описание
isPunct() определяет, относится ли переданный символ к знакам пунктуации — например, к запятой, точке, точке с запятой, восклицательному или вопросительному знаку, скобкам и другим подобным символам. Функция удобна при разборе текстовых строк, когда нужно отделить смысловые символы от разделителей и знаков препинания.
Синтаксис
Используйте следующую функцию для оценки переменной char:
isPunct(thisChar)
Параметры
thisChar: символ, который нужно проверить. Допустимый тип данных: char.
Возвращает
Функция возвращает true, если переданный символ является знаком пунктуации, и false в противном случае.
Пример кода
char myChar = '!'; // попробуйте с 'a' — символ без пунктуации
void setup() {
Serial.begin(9600);
if (isPunct(myChar)) { // проверяет, является ли myChar знаком пунктуации
Serial.println("The character is a punctuation");
} else {
Serial.println("The character is not a punctuation");
}
}
void loop() {
}
Где применяется
- Парсинг текстовых команд — при чтении строк из Serial можно отбрасывать знаки препинания и обрабатывать только буквы и цифры.
- Валидация ввода — проверка, не содержит ли введённая пользователем строка лишних символов.
- Разбиение текста на токены — знаки пунктуации часто служат разделителями, и их легко обнаружить с помощью
isPunct().
Практические замечания
- Функция работает с одним символом типа
char. Чтобы проверить всю строку, нужно перебирать символы по одному в цикле. - Пробел, цифры и буквы не считаются знаками пунктуации —
isPunct()вернёт для нихfalse. - Результат зависит от текущей локали. На Arduino обычно используется стандартная таблица ASCII, поэтому поведение предсказуемо для символов из диапазона 0–127.
- Если символ пришёл через
Serial.read()и хранится какint, сначала проверьте, что результат не равен-1, и только потом приводите его кchar. - Функцию удобно сочетать с
isAlpha(),isDigit()иisSpace()для полноценной классификации символов.