String karakter függvények

Egy adott karakter értékének lekérdezése/beállítása egy karakterláncban.


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


A charAt() és setCharAt() String függvények a karakterlánc egy adott pozíciójában lévő karakter értékének lekérésére vagy beállítására szolgálnak.

A legegyszerűbben ezek a funkciók segítenek egy adott karakter keresésében és cseréjében. Például a következő egy adott karakterlánc kettőspontját egyenlőségjelre cseréli:

String reportString = "SensorReading: 456";
int colonPosition = reportString.indexOf(':');
reportString.setCharAt(colonPosition, '=');

Íme egy példa, amely ellenőrzi, hogy a második szó első betűje 'B'-e:

String reportString = "Franklin, Benjamin";
int spacePosition = reportString.indexOf(' ');
if (reportString.charAt(spacePosition + 1) == 'B') {
Serial.println("You might have found the Benjamins.")
}

Vigyázat: Ha megpróbálja lekérni a charAt-ot, vagy megpróbálja a setCharAt()-ot a karakterlánc hosszánál nagyobb értéken beállítani, váratlan eredményeket fog kapni. Ha nem biztos benne, ellenőrizze, hogy a beállítani vagy megszerezni kívánt pozíció kisebb-e, mint a karakterlánc hossza a length() függvény segítségével.

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

/*
  String charAt() and setCharAt()

  Példák egy karakterlánc karaktereinek lekérésére és beállítására

  created 27 Jul 2010
  modified 2 Apr 2012
  by Tom Igoe

  Ez a kód nyilvános.

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

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
  }

  Serial.println("\n\nString charAt() and setCharAt():");
}

void loop() {
  // hozzon létre egy karakterláncot az érzékelő leolvasásának jelentéséhez:
  String reportString = "SensorReading: 456";
  Serial.println(reportString);

  // a leolvasás legnagyobb helyiértékű számjegye a reportString 15. pozíciójában található:
  char mostSignificantDigit = reportString.charAt(15);

  String message = "Most significant digit of the sensor reading is: ";
  Serial.println(message + mostSignificantDigit);

  // üres sor hozzáadása:
  Serial.println();

  // egy String karakterét be is állíthatja. Módosítsa a ":" karaktert "=" karakterre 
  reportString.setCharAt(13, '=');
  Serial.println(reportString);

  // ne csinálj semmit, amíg igaz:
  while (true);
}

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.