这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
zh:learing:examples:character_analysis [2016/03/21 03:27] – [代码] 董凯萍 | learing:examples:character_analysis [2023/06/07 04:23] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 1: | 行 1: | ||
+ | ====== String Character Analysis(字符串的字符解析) ====== | ||
+ | 这个例子中我们使用运算符来分辨字符类型。这对于检查字符是否是ASCII或者大写字母或是数字或者标点符号等很有用。可供选择的项覆盖了多种情景,下面的程序中进行演示。每一个通过IDE串口发送到控制器的字符都被程序解析,返回所有可能获取到的信息。单个字符可能触发几种情况,所以你可能从一个输入中得到多个答案。 | ||
+ | |||
+ | 可用的运算符有 | ||
+ | |||
+ | <code cpp> | ||
+ | 文字数字 | ||
+ | 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核心 ===== | ||
+ | |||
+ | ==== 硬件 ==== | ||
+ | * [[ocrobot: | ||
+ | |||
+ | ==== 搭建电路 ==== | ||
+ | |||
+ | - USB线连接计算机与ALPHA MEGA328-U。 | ||
+ | |||
+ | ===== 代码 ===== | ||
+ | |||
+ | 打开串口监视器,一次输入一个字符,发送,查看结果。 | ||
+ | |||
+ | <code cpp>/* | ||
+ | Character analysis operators | ||
+ | */ | ||
+ | |||
+ | void setup() { | ||
+ | Serial.begin(9600); | ||
+ | while (!Serial) { | ||
+ | ; // | ||
+ | } | ||
+ | Serial.println(" | ||
+ | Serial.println(); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | if (Serial.available() > 0) { // 接收数据: | ||
+ | int thisChar = Serial.read(); | ||
+ | Serial.print(" | ||
+ | Serial.write(thisChar); | ||
+ | Serial.print(" | ||
+ | Serial.println(thisChar); | ||
+ | if (isAlphaNumeric(thisChar)) { // 分析发送的字符: | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isAlpha(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isAscii(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isWhitespace(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isControl(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isDigit(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isGraph(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isLowerCase(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isPrintable(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isPunct(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isSpace(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isUpperCase(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | if (isHexadecimalDigit(thisChar)) { | ||
+ | Serial.println(" | ||
+ | } | ||
+ | Serial.println(); | ||
+ | Serial.println(" | ||
+ | Serial.println(); | ||
+ | } | ||
+ | }</ |