
In diesem Programm soll die Eingabe im Seriellen Monitor dazu verwendet werden, in einem Satz die Anzahl der Vokale zu zählen und anzuzeigen. Außerdem erfährst du einiges über Zeichenketten.
So soll es aussehen:

Zeichenketten (Strings) können aus einem einzelnen Zeichen (char) oder mehreren Zeichen bestehen.
Sie werden mit den Schlüsselwörtern String und char definiert.
String Zeichenkette = “abcd“;
char Buchstabe = “a“;
String und char können auch in einem Array abgelegt werden:
// definiert ein char-Array mit 5 Elementen
char Buchstaben[5];
// definiert ein Array mit den Elementen aeiou
char Buchstaben[] = {“aeiou”};
// definiert ein String-Array
String Satzteile[] = {“Programmieren “, “ist “, “toll!”};
Eine for-Schleife und ⇒sizeof ermöglichen den Zugriff auf die Elemente des Arrays.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | // definiert ein char Array mit den Elementen aeiou char Buchstaben[] = {“aeiou”}; // definiert ein String-Array String Satzteile[] = {“Programmieren “, “ist “, “toll!”}; void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} // Array mit den Buchstaben anzeigen // char belegt 1 Byte -> entspricht dem Endwert for(int i = 0; i < sizeof(Buchstaben); i++) { Serial.print(Buchstaben[i]); } Serial.println(); // Array mit den Satzteilen anzeigen // Endwert der for-Schleife mit sizeof bestimmen for(int i = 0; i < sizeof(Satzteile) / sizeof(Satzteile[0]); i++) { Serial.print(Satzteile[i]); } } void loop() { // bleibt leer, das Programm läuft nur einmal } |
Für diese Anleitung musst du den Arduino nur über USB verbinden und den Seriellen Monitor öffnen.
Verwende das Eingabefeld im Seriellen Monitor:

Definiere den String Eingabe als globale Variable:
1 | String Eingabe; |
Im setup-Block muss du den Seriellen Monitor starten und einen Hinweis für die Eingabe geben:
1 2 3 4 5 6 7 8 9 | void setup() { Serial.begin(9600); // auf serielle Verbindung warten while (!Serial) {;} Serial.println(“Bitte Text eingeben:”); } |
Im loop-Teil musst du zunächst die Zähler für die Vokale definieren und auf 0 setzen und den String Eingabe leeren…
1 2 3 4 5 6 7 8 9 10 11 | void loop() { // alle Zähler auf 0 setzen int ZaehlerA = 0; int ZaehlerE = 0; int ZaehlerO = 0; int ZaehlerU = 0; int ZaehlerI = 0; // String Eingabe leeren Eingabe = “”; |
… dann auf die Eingabe warten:
1 2 3 4 5 6 7 8 | while (Serial.available() > 0) { // solange lesen, bis return \n eingegeben wurde String Eingabe = Serial.readStringUntil(‘\n’); // das letzte Zeichen ist return // -> soll entfernt werden Eingabe = Eingabe.substring(0, Eingabe.length() - 1); |
Damit Groß- und Kleinbuchstaben erfasst werden, wird der Text in Kleinbuchstaben umgewandelt und dann auf die Anzahl der Vokale untersucht:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | Eingabe.toLowerCase(); for (int i = 0; i < Eingabe.length(); i++) { // Vokale zählen if (Eingabe[i] == ‘a’) ZaehlerA ++; if (Eingabe[i] == ‘e’) ZaehlerE ++; if (Eingabe[i] == ‘i’) ZaehlerI ++; if (Eingabe[i] == ‘o’) ZaehlerO ++; if (Eingabe[i] == ‘u’) ZaehlerU ++; } // Text anzeigen Serial.println(“Text:” + OriginalEingabe); // Ergebnis anzeigen Serial.println(“Anzahl der Vokale:”); Serial.println(“———————–”); Serial.println(String(ZaehlerA) + ” mal das a”); Serial.println(String(ZaehlerE) + ” mal das e”); Serial.println(String(ZaehlerI) + ” mal das i”); Serial.println(String(ZaehlerO) + ” mal das o”); Serial.println(String(ZaehlerU) + ” mal das u”); Serial.println(“———————–”); // Anzahl der Zeichen anzeigen Serial.println(String(Eingabe.length()) + ” Zeichen!”); Serial.println(“———————–”); } } |
Anschließend kannst du den Satz auch rückwärts anzeigen lassen. Allerdings funktioniert das nicht mit Umlauten.
1 2 3 4 5 6 7 8 | // Text rückwärts anzeigen for (int i = OriginalEingabe.length(); i >= 0; i –) { Serial.print(OriginalEingabe[i]); } Serial.println(); Serial.println(“———————–”); |
Zusätzlich kannst du auch alle Vokale durch einen anderen Buchstaben ersetzen. Ergänze das Programm nach der Ausgabe der gezählten Vokale. Im Beispiel werden mit replace alle Vokale durch „i“ ersetzt.
1 2 3 4 5 6 | // alle Vokale durch i ersetzen OriginalEingabe.replace(“a”, “i”); OriginalEingabe.replace(“e”, “i”); OriginalEingabe.replace(“o”, “i”); OriginalEingabe.replace(“u”, “i”); Serial.println(OriginalEingabe); |
Verwandte Anleitungen:
- Einmaleinsreihen anzeigen
- Einmaleinsreihen — Anzeige mit Keyes-Fernbedienung
- Fußballtipp
- Geldautomat
- Kniffel — EEPROM verwenden
- Lottozahlen — Anzeige im Seriellen Monitor
- Primzahlen ermitteln
- Satzmaschine
- Städte-Info
- Teiler bestimmen
Letzte Aktualisierung:






