Главная chevron_right Функции chevron_right Символы chevron_right isPunct()

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() для полноценной классификации символов.

Полезные материалы