在 Arduino 中检查字符是否可打印


通过各种操作,您可能会遇到不可打印的字符。毕竟,一个 char 是一个 8 位数字,如果您查看 ASCII 表格 (https://www.cs.cmu.edu/~pattis/15-1XX/common/handouts/ascii.html), 只有从 32 到 127 的值,或者总共 96 个值中的 127 个是可打印的(参见 http://facweb.cs.depaul.edu/sjost/it212/documents/ascii-pr.htm).  ASCII 只使用 7 位数字,而不是 8 位。

因此,如果您从函数获得 char 输出,并希望检查它是否可打印,则可以使用 Arduino 的 isPrintable() 函数。

语法

isPrintable(myChar)

其中 **myChar** 是要检查的字符。如果字符可打印,则此函数返回 true。

示例

void setup() {
   // put your setup code here, to run once:
   Serial.begin(9600);
   Serial.println();
   char c1 = 'a';
   char c2 = 6;
   char c3 = 56;

   if (isPrintable(c1)) {
      Serial.println("c1 is printable!");
   } else {
      Serial.println("c1 is not printable!");
   }

   if (isPrintable(c2)) {
      Serial.println("c2 is printable!");
   } else {
      Serial.println("c2 is not printable!");
   }

   if (isPrintable(c3)) {
      Serial.println("c3 is printable!");
   } else {
      Serial.println("c3 is not printable!");
   }
}

void loop() {
   // put your main code here, to run repeatedly:
}

输出

串口监视器输出如下所示:

如您所见,字符 c2(对应于数字 6 的 ASCII 等效值)不可打印。您可以从 ASCII 表格中检查它对应于 ACK。类似地,56 对应于数字 8 的字符表示形式。因此,它是可打印的。

更新于: 2021-05-31

379 次查看

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告