用户工具

站点工具


learing:examples:character_analysis

String Character Analysis(字符串的字符解析)

这个例子中我们使用运算符来分辨字符类型。这对于检查字符是否是ASCII或者大写字母或是数字或者标点符号等很有用。可供选择的项覆盖了多种情景,下面的程序中进行演示。每一个通过IDE串口发送到控制器的字符都被程序解析,返回所有可能获取到的信息。单个字符可能触发几种情况,所以你可能从一个输入中得到多个答案。

可用的运算符有

isAlphaNumeric()
文字数字
isAlpha()
字母
isAscii()
ASCII码
isWhitespace()
空格符
isControl()
控制符
isDigit()
数字
isGraph()
非空格符
isLowerCase()
小写字母
isPrintable()
可打印的
isPunct()
标点符号
isSpace()
空格符
isUpperCase()
大写字母
isHexadecimalDigit()
有效的十六进制数字 (例如 0 - 9, a - F, or A - F)

硬件要求

OCROBOT控制器
USB线

此例程没有电路图,用USB线把控制器连到电脑并且打开IDE的串口监视器就行了,

ALPHA MEGA328-U核心

硬件

搭建电路

  1. USB线连接计算机与ALPHA MEGA328-U。

代码

打开串口监视器,一次输入一个字符,发送,查看结果。

/*
  Character analysis operators
*/
 
void setup() {
  Serial.begin(9600);  // 打开串口
  while (!Serial) {
    ; //等待串口连接,只有使用32U4核心的控制器需要这一步
  }
  Serial.println("send any byte and I'll tell you everything I can about it");  //介绍:
  Serial.println();
}
 
void loop() {
   if (Serial.available() > 0) { // 接收数据:
    int thisChar = Serial.read();
    Serial.print("You sent me: \'"); // 显示发送的字符:
    Serial.write(thisChar);
    Serial.print("\'  ASCII Value: ");
    Serial.println(thisChar);
    if (isAlphaNumeric(thisChar)) {   // 分析发送的字符:
      Serial.println("it's alphanumeric");
    }
    if (isAlpha(thisChar)) {
      Serial.println("it's alphabetic");
    }
    if (isAscii(thisChar)) {
      Serial.println("it's ASCII");
    }
    if (isWhitespace(thisChar)) {
      Serial.println("it's whitespace");
    }
    if (isControl(thisChar)) {
      Serial.println("it's a control character");
    }
    if (isDigit(thisChar)) {
      Serial.println("it's a numeric digit");
    }
    if (isGraph(thisChar)) {
      Serial.println("it's a printable character that's not whitespace");
    }
    if (isLowerCase(thisChar)) {
      Serial.println("it's lower case");
    }
    if (isPrintable(thisChar)) {
      Serial.println("it's printable");
    }
    if (isPunct(thisChar)) {
      Serial.println("it's punctuation");
    }
    if (isSpace(thisChar)) {
      Serial.println("it's a space character");
    }
    if (isUpperCase(thisChar)) {
      Serial.println("it's upper case");
    }
    if (isHexadecimalDigit(thisChar)) {
      Serial.println("it's a valid hexadecimaldigit (i.e. 0 - 9, a - F, or A - F)");
    }
    Serial.println();    // 加几个空格,换另一种类型
    Serial.println("Give me another byte:");
    Serial.println();
  }
}
learing/examples/character_analysis.txt · 最后更改: 2017/10/05 03:44 (外部编辑)