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

isDigit()

isDigit() проверяет, является ли символ char десятичной цифрой от '0' до '9', и возвращает true или false — удобно при разборе строк и валидации ввода.

Полная статья

Описание

isDigit() проверяет, является ли переданный символ десятичной цифрой — то есть одним из символов '0'...'9'. Это удобно при разборе строк, поступающих от пользователя или внешнего устройства: например, чтобы отделить числовую часть от букв и знаков препинания.

Функция возвращает true, если символ является цифрой, и false в противном случае.

Синтаксис

isDigit(thisChar)

Параметры

thisChar: символ типа char, который нужно проверить.

Возвращает

Функция возвращает true, если thisChar — это символ цифры ('0''9'). Если символ является буквой, пробелом, знаком препинания или любым другим нецифровым символом, возвращается false.

Пример кода

char myChar = '8'; // проверяем с 'n' — нецифровым символом

void setup() {
  Serial.begin(9600);

  if (isDigit(myChar)) {  // проверяем, является ли myChar цифрой
    Serial.println("The character is a number");
  }
  else {
    Serial.println("The character is not a number");
  }
}

void loop() {
}

Где применяется

  • Разбор пользовательского ввода через Serial: когда пользователь вводит команду вроде "LED5", можно пройтись по символам строки и выделить числовую часть.
  • Валидация данных от датчиков или модулей: если модуль передаёт строку с числом, isDigit() помогает убедиться, что символ действительно можно преобразовать в цифру перед вызовом toInt() или аналогичных функций.
  • Парсинг протоколов: при разборе текстовых протоколов (NMEA, AT-команды) нужно отличать числовые поля от буквенных.

Практические замечания

  • isDigit() проверяет именно символ-цифру, а не числовое значение. Символ '5' — это цифра, а целое число 5 — нет: в ASCII число 5 соответствует управляющему коду 0x05, тогда как символ '5' имеет код 0x35.
  • Функция не учитывает знак: символы '+' и '-' не считаются цифрами.
  • Символ '.' тоже не является цифрой с точки зрения isDigit(), даже если вы разбираете число с плавающей точкой.
  • Удобно использовать в цикле по символам строки типа String или массива char[], обращаясь к каждому элементу по индексу.
  • Если нужно проверить сразу несколько категорий символов, обратите внимание на родственные функции: isAlpha(), isAlphaNumeric(), isSpace() и другие из той же группы.

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