Karakterelemzés

Az operátorokat használjuk annak felismerésére, hogy milyen típusú karakterrel van dolgunk.


Utolsó felülvizsgálat: 2022.02.04 16:50


Ebben a példában azokat az operátorokat használjuk, amelyek lehetővé teszik, hogy felismerjük a karakter típusát, amellyel foglalkozunk. Hasznos ellenőrizni, hogy egy karakter ASCII, nagybetű-e vagy numerikus-e, vagy írásjel-e és így tovább. A rendelkezésre álló lehetőségek sokféle helyzetet lefednek, és ezt az alábbi vázlat szemlélteti. Az Arduino Software (IDE) soros monitorán keresztül a táblára küldött minden karaktert a vázlat elemzi, amely visszaadja az összes megtalált információt. Egy karakter több feltételt is kiválthat, ezért egy bejegyzésre több választ is kaphat.

Az elérhető operátorok a következők:

  • isAlphaNumeric() ez alfanumerikus

  • isAlpha() ez betű

  • isAscii() ez ASCII

  • isWhitespace() ez whitespace

  • isControl() ez vezérlőkarakter

  • isDigit() ez számjegy

  • isGraph() ez nyomtatható karakter, amely nem whitespace

  • isLowerCase() ez kisbetű

  • isPrintable() ez nyomtatható

  • isPunct() ez írásjel

  • isSpace() ez szóköz karakter

  • isUpperCase() ez nagybetű

  • isHexadecimalDigit() ez egy érvényes hexadecimális számjegy (azaz 0 - 9, a - f vagy A - F)

Hardver szükséglet

  • Arduino kártya

Az áramkör

Ebben a példában nincs áramkör, bár a kártyát USB-n keresztül kell csatlakoztatni a számítógéphez, és az Arduino Software (IDE) soros monitor ablakának nyitva kell lennie.

A kód

Nyissa meg az Arduino Software (IDE) soros monitor ablakát, és írjon be egyszerre egy karaktert, majd nyomja meg a Küldés gombot, hogy jelentést kapjon az adott karakterről.

/*
  Character analysis operators

  Példák a karakterelemző operátorok használatára.
  Küldj el egy tetszőleges bájtot, és a vázlat körbeírja.

  created 29 Nov 2010
  modified 2 Apr 2012
  by Tom Igoe

  Ez a kód nyilvános.

  https://docs.arduino.cc/built-in-examples/strings/CharacterAnalysis
*/

void setup() {
  // Nyissa meg a soros kommunikációt, és várja meg, amíg megnyílik a port:
  Serial.begin(9600);
  while (!Serial) {
    ; // várja meg a soros port csatlakozását. Csak a natív USB-porthoz szükséges
  }

  // küldj bevezetőt:
  Serial.println("Küldj tetszőleges bájtot és elmondok róla mindent, amit tudok!");
  Serial.println();
}

void loop() {
  // elkap minden bejövő bájtot:
  if (Serial.available() > 0) {
    int thisChar = Serial.read();

    // mondd, mit küldtek:
    Serial.print("Ezt küldted: \'");
    Serial.write(thisChar);
    Serial.print("\'  ASCII értéke: ");
    Serial.println(thisChar);

    // elemezni a küldötteket:
    if (isAlphaNumeric(thisChar)) {
      Serial.println("ez alfanumerikus");
    }
    if (isAlpha(thisChar)) {
      Serial.println("ez betű");
    }
    if (isAscii(thisChar)) {
      Serial.println("ez ASCII");
    }
    if (isWhitespace(thisChar)) {
      Serial.println("ez whitespace");
    }
    if (isControl(thisChar)) {
      Serial.println("ez vezérlőkarakter");
    }
    if (isDigit(thisChar)) {
      Serial.println("ez számjegy");
    }
    if (isGraph(thisChar)) {
      Serial.println("ez nyomtatható karakter nem whitespace");
    }
    if (isLowerCase(thisChar)) {
      Serial.println("ez kisbetű");
    }
    if (isPrintable(thisChar)) {
      Serial.println("ez nyomtatható");
    }
    if (isPunct(thisChar)) {
      Serial.println("ez írásjel");
    }
    if (isSpace(thisChar)) {
      Serial.println("ez szóköz karakter");
    }
    if (isUpperCase(thisChar)) {
      Serial.println("ez nagybetű");
    }
    if (isHexadecimalDigit(thisChar)) {
      Serial.println("ez valódi hexadecimális számjegy (azaz 0 - 9, a - f, vagy A - F)");
    }

    // adj hozzá némi szóközt, és kérj még egy bájtot:
    Serial.println("-------------------------------");
    Serial.println("Küldjél egy másik bájtot:");
    Serial.println();
  }
}

Tudj meg többet

További alapvető oktatóanyagokat a beépített példák részben talál.

Felfedezheti a nyelvi referenciát is, az Arduino programozási nyelv részletes gyűjteményét.