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.