Bitte eine Textzeile eingeben: Aha, so geht das also! Aha so geht das also Es wurden 5 Worte eingelesen.
Versuchen Sie zunächst nur Sätze mit Großbuchstaben zu erkennen, dann erweitern Sie das Programm auch auf Kleinbuchstaben.
Tipp: Schreiben Sie zunächst eine Funktion, die prüft, ob ein einzelnes Zeichen ein Buchstabe ist oder nicht.
Alle unterstrichenen Stellen bei der Aufgabe sind Eingaben, die der Benutzer durchführen soll.
#include <fstream.h> #include <string.h> // Funktion zum Prüfen auf einen Buchstaben bool ischar(char zeichen) { if (zeichen >= 'a' && zeichen <= 'z' || zeichen >= 'A' && zeichen <= 'Z' || // Die nächste Zeile einbinden, falls auch Zahlen erkannt werden sollen // zeichen >= '0' && zeichen <= '9' || zeichen >= (char)192 && zeichen <= (char)214 || zeichen >= (char)216 && zeichen <= (char)246 || zeichen >= (char)248 && zeichen <= (char)255) return true; return false; } // Start des Hauptprogrammes main() { // Konstante für die maximale Anzahl von Zeichen definieren const int MAX_ZEICHEN = 100; // Variable deklarieren char text[MAX_ZEICHEN]; // Variable für die Textzeile int worte = 0; // Variable für die Anzahl der Worte // Die Textzeile einlesen cout << "Bitte eine Textzeile eingeben: "; cin.getline(text, MAX_ZEICHEN); // Worte in Textzeile zählen und ausgeben bool letztes_zeichen = false; // Variable um festzustellen ob das letzte // Zeichen ein Buchstabe war. for (int i = 0; i < strlen(text); i++) { if (ischar(text[i])) { cout << text[i]; // Zeichen ausgeben letztes_zeichen = true; // letztes_zeichen auf true setzen } else { if (letztes_zeichen) // war Zeichen zuvor ein Buchstabe? { cout << endl; worte++; // Zähler für Worte um eins erhöhen } letztes_zeichen = false; // letztes_zeichen auf false setzen } } if (letztes_zeichen) // war Zeichen zuvor ein Buchstabe? { cout << endl; worte++; // Zähler für Worte um eins erhöhen } cout << "Es wurden " << worte << " Worte eingelesen." << endl; }