learing:examples:character_analysis
差别
这里会显示出您选择的修订版和当前版本之间的差别。
| 两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
| learing:examples:character_analysis [2017/04/07 10:03] – 外部编辑 127.0.0.1 | learing:examples:character_analysis [2025/10/11 02:55] (当前版本) – 外部编辑 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(); | ||
| + | } | ||
| + | }</ | ||
